关于CodeForces Round #881(Div 3) G题的常数问题
  • 板块学术版
  • 楼主封禁用户
  • 当前回复7
  • 已保存回复7
  • 发布时间2022/8/4 21:25
  • 上次更新2023/10/27 16:59:17
查看原帖
关于CodeForces Round #881(Div 3) G题的常数问题
461366
封禁用户楼主2022/8/4 21:25

这一题是卡常吗?这是我的代码:

#pragma GCC target("avx")
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast")
#pragma GCC optimize("inline")
#pragma GCC optimize("-fgcse")
#pragma GCC optimize("-fgcse-lm")
#pragma GCC optimize("-fipa-sra")
#pragma GCC optimize("-ftree-pre")
#pragma GCC optimize("-ftree-vrp")
#pragma GCC optimize("-fpeephole2")
#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("-fsched-spec")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-falign-jumps")
#pragma GCC optimize("-falign-loops")
#pragma GCC optimize("-falign-labels")
#pragma GCC optimize("-fdevirtualize")
#pragma GCC optimize("-fcaller-saves")
#pragma GCC optimize("-fcrossjumping")
#pragma GCC optimize("-fthread-jumps")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-fwhole-program")
#pragma GCC optimize("-freorder-blocks")
#pragma GCC optimize("-fschedule-insns")
#pragma GCC optimize("inline-functions")
#pragma GCC optimize("-ftree-tail-merge")
#pragma GCC optimize("-fschedule-insns2")
#pragma GCC optimize("-fstrict-aliasing")
#pragma GCC optimize("-fstrict-overflow")
#pragma GCC optimize("-falign-functions")
#pragma GCC optimize("-fcse-skip-blocks")
#pragma GCC optimize("-fcse-follow-jumps")
#pragma GCC optimize("-fsched-interblock")
#pragma GCC optimize("-fpartial-inlining")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("-freorder-functions")
#pragma GCC optimize("-findirect-inlining")
#pragma GCC optimize("-fhoist-adjacent-loads")
#pragma GCC optimize("-frerun-cse-after-loop")
#pragma GCC optimize("inline-small-functions")
#pragma GCC optimize("-finline-small-functions")
#pragma GCC optimize("-ftree-switch-conversion")
#pragma GCC optimize("-foptimize-sibling-calls")
#pragma GCC optimize("-fexpensive-optimizations")
#pragma GCC optimize("-funsafe-loop-optimizations")
#pragma GCC optimize("inline-functions-called-once")
#pragma GCC optimize("-fdelete-null-pointer-checks")

#include <bits/stdc++.h>
using namespace std;

struct edge {
	int v, a, b;
	edge(int _v, int _a, int _b) {
		v = _v;
		a = _a;
		b = _b;
	}
};

vector<edge> g[200010];
int r[200010];

vector<int> allb;

void dfs(int u, int suma, int bidx, int sumb) {
	while (bidx < allb.size() && sumb + allb[bidx] <= suma) {
		sumb += allb[bidx];
		bidx++;
	}
	r[u] = bidx;
	for (edge e: g[u]) {
		allb.push_back(e.b);
		dfs(e.v, suma + e.a, bidx, sumb);
		allb.pop_back();
	}
}

void run() {
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) g[i].clear();
	for (int j = 2; j <= n; j++) {
		int p, a, b;
		scanf("%d%d%d", &p, &a, &b);
		g[p].push_back(edge(j, a, b));
	}
	allb.clear();
	dfs(1, 0, 0, 0);
	for (int i = 2; i <= n; i++) printf("%d ", r[i]);
	printf("\n");
}

int main() {
	int t;
	scanf("%d", &t);
	while (t--) run();
	return 0;
}

这是数据:

1

200000

1 1 100000000

2 1 1

3 1 1

4 1 1

5 1 1

...

我的代码按这个数据跑是O(n)的,但是还是光荣TLE。我甚至把cin,cout改了,还加了火车头,但是还是TLE。

大佬们,求助。

2022/8/4 21:25
加载中...