社区讨论

救一下求求了

P14919[GESP202512 六级] 路径覆盖参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mk86z22m
此快照首次捕获于
2026/01/10 18:58
上个月
此快照最后确认于
2026/01/13 19:40
上个月
查看原帖
附代码```cpp #include #include using namespace std; struct cs { long long q=0; int before=0; bool flag=false; }a[114514];
int n, cnt[114514]; //long long minn = 1e15; long long ans;
void t(int s,long long &minn ,int &f) { if (minn > a[s].q) { minn = a[s].q; f=s; } if (a[s].before != 0) t(a[s].before,minn,f); else return; }
int main() {
CPP
a[1].before = 0;
cin >> n;
for (int i = 2; i <= n; i++) {
	cin >> a[i].before;
	cnt[a[i].before]++;
}
for (int i = 1; i <= n; i++)cin >> a[i].q;

for (int i = 1; i <= n; i++) {
	if (cnt[i] == 0) {
		long long minn = 1e15;
		int f = 0;
		t(i,minn,f);
		if (a[f].flag != true) {
			ans += minn;
			a[f].flag = true;
		}
	}
	
}
cout << ans;
return 0;
}
CPP

回复

2 条回复,欢迎继续交流。

正在加载回复...