2017南宁网络赛M.Frequent Subsets Problem (状态压缩)
来源:互联网 发布:香港衰落 知乎 编辑:程序博客网 时间:2024/06/05 04:29
题意:
给你一个全集U,元素为1~n;再给你m个模板集(为U的某一子集);和一个概率a;让你求U的所有子集中,在m个模板集中出现的概率大于等于a的子集个数;例如:全集为1234,有两个模板集,分别为{1,2},{1,2,3};概率a为1,那么符合条件的子集有,{1},{2},{1,2};如果概率a为0.5,那么符合条件的除了之前的还有{3},{1,3},{2,3};
思路:
因为n小于等于20,所以子集最多有2的20次方即10的6次方左右,那么可以二进制暴力枚举所有子集来判断符不符合条件,同样,模板集也可以通过二进制来状态压缩,从而每个查询操作降为o(1),用set的话为o(logn);
代码:
#include <bits/stdc++.h>using namespace std;int s[55];int main(){ int n; double a; cin>>n>>a; int num; int m = 0; memset(s,0,sizeof(s)); char ch; while(~scanf("%d%c",&num,&ch)) { num--; s[m] += (1<<num); if(ch=='\n') m++; } m++; int l = 1; l<<=n; int ans = 0; for(int i = 1;i<l;i++) { int sum = 0; for(int k = 0;k<m;k++){ int flag = 0; for(int j = 0;j<n;j++) { if((1<<j)&i) { if(!((1<<j)&s[k])) { flag = 1; break; } } } if(!flag) sum++; } if((double)sum>=(double)a*m) ans++; } printf("%d",ans); return 0;}
阅读全文
0 0
- 2017南宁网络赛M.Frequent Subsets Problem (状态压缩)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem (状态压缩)
- 2017ICPC 南宁网络赛M Frequent Subsets Problem
- 计蒜客 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem (位压缩)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛: M. Frequent Subsets Problem(状压)
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M. Frequent Subsets Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 M Frequent Subsets Problem
- 2017 ACM-ICPC亚洲区(南宁赛区)网络赛 F.Frequent Subsets Problem
- Frequent Subsets Problem 进制运算 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛 Frequent Subsets Problem
- 2017 ACM-ICPC 亚洲区(南宁赛区)网络赛:Frequent Subsets Problem
- 2017ACM-ICPC南宁网络赛Frequent Subsets Problem(康托展开+bfs)
- 计蒜客 Frequent Subsets Problem&&2017 Icpc南宁赛
- 计蒜客 Frequent Subsets Problem(状态压缩)
- M. Frequent Subsets Problem
- [南宁ACM-ICPC]Frequent Subsets Problem
- Frequent Subsets Problem(北京网赛)
- Frequent Subsets Problem
- tomcat 绑定花生壳域名实现访问去端口号和项目名称通过域名访问内网可以,外网不加项目名怎么不行?
- Android开发之--MD5
- svn外部链接目录(SVN:External)
- Qt
- 35个Java代码性能优化总结
- 2017南宁网络赛M.Frequent Subsets Problem (状态压缩)
- 有时需要把析构函数设置为虚函数虚函数
- Ruby学习笔记(03)_变量
- load jpeg with tensorflow-FIFOQueue '_1_input_producer' is closed and has insufficient elements()
- 【洛谷】P3372线段树1 线段树模板
- 二叉树相关算法
- 深入理解 JavaScript 正则表达式的特性与最佳实践
- IT界最真实的面试实录
- 2.偏头痛杨的rocketmq4.x入门之安装&启动篇