专栏文章

原神-策略

个人记录参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@mink86w6
此快照首次捕获于
2025/12/02 03:46
3 个月前
此快照最后确认于
2025/12/02 03:46
3 个月前
查看原文

题目大意

给定一个集合 AA,从集合 AA 中删去一个数 aa,将集合 AA 中剩下的元素分成两个不同的子集 A1,A2A_1,A_2且这两个子集都不是空集。问:i=1A1=i=1A2\sum_{i = 1}^{|A_1|} = \sum_{i = 1}^{|A_2|} 是否成立。

思路:

根据题意我们可以得出:i=1A1+i=1A2+a=i=1A\sum_{i = 1}^{|A_1|} + \sum_{i = 1}^{|A_2|} + a = \sum_{i = 1}^{|A|}
i=1A1=i=1A2\because\sum_{i = 1}^{|A_1|} = \sum_{i = 1}^{|A_2|}
那我们不妨设 i=1A1=i=1A2=mi=1A=2m+a2m=i=1Aa\sum_{i = 1}^{|A_1|} = \sum_{i = 1}^{|A_2|} = m \therefore \sum_{i = 1}^{|A|} = 2m + a \Rightarrow 2m = \sum_{i = 1}^{|A|}-a
2m为偶数i=1Aa为偶数\because 2m \text{为偶数} \therefore \sum_{i = 1}^{|A|}-a\text{为偶数}
假设 aa 为偶数,那么 i=1A\sum_{i = 1}^{|A|} 一定也为偶数。又因为集合 AA 中一定存在一个奇数,但是不管是奇数个偶数+奇数还是偶数个偶数+奇数结果一定是奇数,故假设不成立。
所以 aa 一定是奇数,那么i=1A\sum_{i = 1}^{|A|}一定也为奇数。又因为不管奇数还是偶数个偶数相加结果一定为偶数,所以集合 AA 的元素一定都是奇数。又因为奇数和奇数相加为奇数,偶数个奇数相加为偶数,所以集合 AA 的元素个数为奇数。
所以我们只需要判断集合 AA 的元素个数和元素之和是否都是奇数,如果同时满足则可以,输出 YesYes;否则输出 NoNo

代码:

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

int x;
int cnt, sum;
// cnt:计算元素个数,sum:计算元素之和

int main() {
    while (cin >> x) {
        if (x != -1) cnt ++;
        if (x != -1) sum += x;
    }

    // 判断是否满足条件:元素个数和元素之和都是奇数
    if (cnt % 2 == 0 || sum % 2 == 0) cout << "No";
    else if (cnt % 2 != 0 && sum % 2 != 0)cout << "Yes";
    return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...