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");

posted @ 2022-03-27 20:16  Bellala  阅读(52)  评论(0)    收藏  举报