Given you n sets.All positive integers in sets are not less than 1 and not greater than m.If use these sets to combinate the new set,how many different new set you can get.The given sets can not be broken.

代码:

#include<bits/stdc++.h>
using namespace std;
int s[1<<15];//集合最大容量
int n,m,k,e;
//输入n个集合,每个集合的容量上限是m.
//集合元素 e
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
int ans=0;
memset(s,0,sizeof(s));
while(n--)
{
int set=0;
scanf("%d",&k);
//每个集合元素总数有k个
while(k--)
{
scanf("%d",&e);
//用一个二进制数保存一个集合的元素
set=set|(1<<(e-1));
}
//状态数组吧,我想!
s[set]=1; //(1<<14)
//借助于位运算合并集
for(int j=0;j<=(1<<14);j++)
{
if(s[j]) s[set|j]=1;
}
} for(int i=0;i<=1<<14;i++)
{
if(s[i]) ans++;
}
printf("%d\n",ans);
}
return 0;
}

赏析:

能力积累:

1.

int setval,size,element;//setval作为集合一一对应的特征值。
void f()
{
setval=;
scanf("%d",&size);
while(size--)
{
scanf("%d",&element);
setval=setval|(<<(element-));
}
cout<<setval<<endl;
}

参考:

https://www.cnblogs.com/lonelycatcher/archive/2011/05/27/2060158.html

最新文章

  1. My Demo Reels
  2. Windows下Eclipse+Scala+Spark开发环境搭建
  3. 《C#图解教程》读书笔记之四:类和继承
  4. java多线程(三)——锁机制synchronized(同步语句块)
  5. 基于@AspectJ和schema的aop(二)---@AspectJ基础语法
  6. COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression)
  7. 低电压锁定(UVLO) (转)
  8. intellij 打开node项目 一直停留在scanning files to index....,或跳出内存不够的提示框
  9. Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
  10. Linux安装java环境教程
  11. Python 爬虫基础知识
  12. ajax调用WebService实现数据库操作
  13. 448C - Painting Fence(分治)
  14. Leaf——美团点评分布式ID生成系统 UUID &amp; 类snowflake
  15. Access使用记录
  16. java 中的包概念
  17. 【C++】10.18日的C++笔记
  18. B类——Stas and the Queue at the Buffet
  19. JAVA基础部分复习(四、抽象类与接口)
  20. 类与对象 - Java学习(二)

热门文章

  1. 吴裕雄--天生自然HADOOP操作实验学习笔记:hive DDL
  2. D - Counting Squares
  3. 使用栅格系统和flex布局开发响应式页面源码
  4. 谈一谈php反序列化
  5. sqli-labs less-17 --&gt; less-20
  6. Web简单小结
  7. vue keep-alive 遇见 vue-router
  8. PHP常见数组函数总结
  9. 541-反转字符串 II
  10. ASP.NET MVC5 的请求管道和运行生命周期