求能覆盖到所有点的最少集合情况(超时题,须优化)
来源:互联网 发布:淘宝象印官方旗舰店 编辑:程序博客网 时间:2024/04/26 14:27
4 //t组样例3 5 //3个集合,5个点2 2 1 //2大小,覆盖点2和点11 4 //1大小,覆盖点42 3 5 //2大小,覆盖点3和点5
3 3 //3个集合,3个点3 1 2 3 //3大小,覆盖点1和点2和点33 2 3 1 //3大小,覆盖点2和点3和点13 3 1 2 //3大小,覆盖点3和点1和点23 32 1 22 2 32 3 1
3 32 2 31 12 1 3
Sample Output
31 2 31121 221 2一个很容易想到的做法:#include<iostream>#include<algorithm>#include<string>#include<map>#include<cmath>#include<string.h>#include<stdlib.h>#include<cstdio>#define ll long longusing namespace std;int main(){int t;cin>>t;while(t--){int n,m,a,b;cin>>n>>m;int minn=100000000,p;for(int i=0;i<n;++i){cin>>a;for(int j=0;j<a;++j){cin>>b;y[i].push_back(b);}}for(int i=1;i<(1<<n);++i){map<int,int> r;for(int j=0;j<n;++j){if(i&(1<<j)){for(int k=0;k<y[j].size();++k){r[y[j][k]]=1;}}}if(r.size()==m){......}}......}return 0;}但是复杂度会爆。所以用下面的做法:#include<iostream>#include<algorithm>#include<string>#include<map>#include<cmath>#include<string.h>#include<stdlib.h>#include<cstdio>#define ll long longusing namespace std;int x[65];int main(){int t;cin>>t;while(t--){memset(x,0,sizeof(x));int n,m,a,b;cin>>n>>m;int minn=100000000,p;for(int i=0;i<n;++i){cin>>a;for(int j=0;j<a;++j){cin>>b;x[b]|=(1<<i);}}for(int i=1;i<(1<<n);++i){int w=0,h=i,s=0;while(h>0){w+=h%2;h/=2;}for(int j=1;j<=m;++j){if(x[j]&i) //如果i里面包含至少一个有j的位s++; }if(s==m){if(w<minn){minn=w;p=i;}}}cout<<minn<<endl;int s=1,w=1;while(p>0){if(p%2==1){if(s<minn)cout<<w<<" ";elsecout<<w<<endl;s++;}p/=2;w++;}}return 0;}
0 0
- 求能覆盖到所有点的最少集合情况(超时题,须优化)
- 求绳子最多能覆盖的点
- POJ 3020 Antenna Placement(最少边覆盖所有点)
- 用最少圆覆盖所有点问题
- hdoj Summer Holiday 1827 (强连通分量 求最少连通多少点从而连通所有点) arjan求SCC+缩点 好题
- (hdu step 6.3.3)Air Raid(最小路径覆盖:求用最少边把所有的顶点都覆盖)
- dijkstra(n^2)求某个点到所有点的最短路径
- hdu 1232 畅通工程(求最少多少条边可以使所有点联通)
- poj 3069 给定半径求覆盖所有点需要的标记的点
- 二分图最少点覆盖
- 贪心——烈焰风暴(用最少的线段去覆盖最多的点)
- hdu 5934 强连通 && 判断覆盖图的最少点
- 求集合的所有子集
- 求集合的所有子集
- 求集合的所有子集
- 求集合的所有子集
- 求集合的所有子集
- poj Network of Schools 1236 (强连通分量+缩点) (问添加几个点最少点是所有点连接+添加最少边使图强连通) 好题
- P站来的福利(第三波)
- 关于在头文件中定义变量
- 【Android开发小记--5】动画--两张图片轮回翻转
- 今日的第一个博客
- 数据结构基础之链表
- 求能覆盖到所有点的最少集合情况(超时题,须优化)
- HDU 4518 解题报告
- 【DP】Codeforces Round #341 (Div. 2) E
- N皇后
- 关于getline
- 走过2015,展望2016
- 安卓开发——DisplayMetrics类
- FZUOJ 1402 猪的安家 (中国剩余定理 互质)
- 每个痛苦的过程都是你进步的阶梯