二进制枚举子集
1
hesorchen
这个作者很懒,什么都没留下…
展开
-
洛谷P2036
题目链接:洛谷P2036 一看数据范围,直接想到二进制枚举子集 int main() { // fre; int n; cin >> n; int ans = INF; int a[12], b[12]; for (int i = 1; i <= n; i++) cin >> a[i] >> b[i]; for (int i = 1; i < (1 << n); i++)原创 2020-05-15 15:26:23 · 5351 阅读 · 0 评论 -
二进制枚举
题目:输入一个n,m,让你在0~ 9中找不同的n个数,相加等于m,问你有多少种可能。 例如:输入2 6,可以选择0+6,1+5,2+4,所以答案是3。 总共就十个数字。也就是1024种情况,暴力二进制枚举即可~ int main() { int n, m; while (cin >> n >> m && n && m) ...原创 2020-03-14 20:49:39 · 5161 阅读 · 2 评论 -
二进制枚举子集
定义 子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集。 A集合有n个元素,那么A的子集个数为2n。 我们先来看看3个物品的23取法分别是哪8种 用1表示取该物品,0表示不取 取法\物品 物品1 物品2 物品3 取法1 0 0 0 取法2 0 0 1 取法3 0 1 0 取法4 0 1 1 取法5 1 0 0 ...原创 2020-02-03 16:01:11 · 6933 阅读 · 2 评论