本文主要是介绍小米OJ #24 海盗分赃,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 总和奇数肯定false.
- 如果数字的某种组合能够等于 总和/2 ,则true
- 利用Bitset保存情况
#include <bits/stdc++.h>
using namespace std;
bitset<50005> flag;
int val;
char s;
int nums[101];
int len;
int sum = 0;
int main()
{while (~scanf("%d%c", &val, &s)){sum += val;nums[len++] = val;if (s != ',')break;};if (sum & 1){printf("false");return 0;}flag[0] = 1;for (int i = 0; i < len; ++i)flag |= (flag << nums[i]);if (flag[sum / 2])printf("true");elseprintf("false");return 0;
}
这篇关于小米OJ #24 海盗分赃的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!