博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces-868C. Qualification Rounds(状压)
阅读量:4350 次
发布时间:2019-06-07

本文共 1209 字,大约阅读时间需要 4 分钟。

 

N题K人,给出N行K列数据,aij为1代表i题被第j个人所了解。求是否能找出一套题(在这N题中找任意题)使得每个人了解的题不超过这套题数目的一半。(1 ≤ n ≤ 1051 ≤ k ≤ 4) 

需要先证明要么使用一道题,要么使用两道题,如果有解,那么答案有解,否则答案无解。(一道是特殊情况,当存在多道题构成的解,我们可以反证,说明其中必然有两道可以满足条件)

注意到k很小,我们就会联想到状压dp.

 

1 #include 
2 #include
3 #include
4 #include
5 #define INF 0x3f3f3f3f 6 #define MOD 1000000007 7 using namespace std; 8 typedef long long LL; 9 10 int N, K;11 const int max_s = 20;12 bool vis[max_s];13 14 int main() {15 scanf("%d%d", &N, &K);16 for (int i = 1; i <= N; i++) {17 int state = 0;18 for (int j = 1; j <= K; j++) {19 int t;20 scanf("%d", &t);21 state |= ((1 << (j - 1)) * t);22 }23 vis[state] = 1;24 }25 bool flag = 0;26 for (int i = 0; i < (1 << 4) && !flag; i++) {27 for (int j = 0; j < (1 << 4) && !flag; j++) {28 if (!vis[i] || !vis[j]) continue;29 if ((i & j) == 0) {30 flag = 1;31 }32 }33 }34 if (flag) {35 puts("YES");36 } else {37 puts("NO");38 }39 return 0;40 }

 

转载于:https://www.cnblogs.com/xFANx/p/8413473.html

你可能感兴趣的文章
Page.RegisterStartupScript和Response.Write的区别。
查看>>
hdu4348区间更新的主席树+标记永久化
查看>>
bzoj3261: 最大异或和 可持久化trie
查看>>
ZOJ 2532 Internship
查看>>
HDU 3452 Bonsai
查看>>
[Erlang12] Mnesia分布式应用
查看>>
图的遍历 | 1013 连通块块数
查看>>
Kinect 开发 —— 进阶指引(上)
查看>>
python学习笔记(六)time、datetime、hashlib模块
查看>>
uva489(需要考虑周全)
查看>>
C-关键字(二)
查看>>
排序笔记
查看>>
咏南APP(手机)开发框架
查看>>
MSDN--ASP.NET概述
查看>>
IC卡的逻辑卡号和市民卡卡号
查看>>
2014025680(22)《嵌入式系统程序设计》第三、四周学习总结
查看>>
下载360doc.com里的文章
查看>>
【转】globk和glorg中使用的apr文件
查看>>
导航,头部,CSS基础
查看>>
PostMessage 解析
查看>>