daimayuan 609. 区间和
题意:
有一个长度已知的秘密的数组 A 。给你 Q 个提示,每次告诉你一个区间的区间和。问能否根据这些提示知道数组 A 中所有元素的和?
思路:
考虑前缀和,如果知道了 \([L,R]\) 区间和,那么由 \(s_{l-1}\) 和 \(s_R\) 中的一个可以推出另一个。一开始只知道 \(s_0=0\),并查集弄一下即可。
cin >> n >> m;
for(int i = 1; i <= n; i++) p[i] = i;
while(m--) {
int x, y; cin >> x >> y;
x = get(x-1), y = get(y);
if(x != y) p[x] = y;
}
cout << (get(0) == get(n) ? "Yes" : "No");

浙公网安备 33010602011771号