传送门

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

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

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

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <iostream>
 4 #include <algorithm>
 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

Codeforces-868C. Qualification Rounds(状压)相关推荐

  1. C. Qualification Rounds(状压思维)

    C. Qualification Rounds(状压&思维) 若有解最多选两个. 选奇数肯定没有选偶数优,在奇数的基础上减少一个1最多的问题是更优的. 所以只需考虑偶数情况. 假设存在4个问题 ...

  2. CodeForces 868C Qualification Rounds

    题目链接:http://codeforces.com/contest/868/problem/C 题意:有n到题目,有k支队为,每只队伍对于每到题目来说,有会(1)的有不会(0)的,现在问你能不能从这 ...

  3. codeforces 868C - Qualification Rounds

    题目链接: http://codeforces.com/problemset/problem/868/C 题解: 离散化后,只要确定有一对满足条件就行了,但是需要注意只有一个的特殊情况. 代码: #i ...

  4. Codeforces 868C - Qualification Rounds 思维

    题目:斯纳克和菲利普正在为即将到来的半决赛预赛做准备.他们有一个含有N个问题的银行,他们想选择任何非空子集作为问题集. 有K个经验丰富的球队正在参加比赛.这些团队中的一些已经知道了一些问题.为了让比赛 ...

  5. CodeForces - 1550E Stringforces(二分+状压dp)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的字符串,只包含前 kkk 个小写字母以及通配符 ???,现在可以将通配符替换成任意的前 kkk 个字母中的一个.设 f[i]f[i]f[i] 为 ...

  6. CodeForces - 1523D Love-Hate(随机数+状压dp)

    题目链接:点击查看 题目大意:给出 nnn 个 010101 序列表示二进制状态,问选择至少 ⌈n2⌉\lceil \frac{n}{2}\rceil⌈2n​⌉ 个状态进行位运算的与运算后得到的答案中 ...

  7. Codeforces ----- Kefa and Dishes [状压dp]

    题目传送门:580D 题目大意:给你n道菜以及每道菜一个权值,k个条件,即第y道菜在第x道后马上吃有z的附加值,求从中取m道菜的最大权值 看到这道题,我们会想到去枚举,但是很显然这是会超时的,再一看数 ...

  8. Codeforces 1741G 最短路上状压dp

    题意: 有 n n n个地方,他们被 m m m条道路相连.有一天, t o t tot tot个人在 1 1 1处开派对,开完派对他们要回家,他们回家只会走最短路径,其中有 k ( k ≤ 6 ) ...

  9. CodeForces - 1316E Team Building(状压dp)

    题目链接:点击查看 题目大意:给出 n 个人,现在需要 p 个球员和 k 个啦啦队员,n 个人当啦啦队员以及当第 i 个位置的球员所做的贡献都会给出,现在问如何分配可以使得总贡献和最大 题目分析:因为 ...

最新文章

  1. Windows下使用Tesseract进行OCR文字识别
  2. python类型转换-Python的数据类型转换函数
  3. CentOS启动不显示图形界面直接进入命令行模式
  4. jvm性能调优 - 05对象在JVM内存中的分配和流转
  5. service能去调另外一个service吗_kubernetes的service和pod是如何关联的?
  6. hdu 3652 B-number 数位dp
  7. in、at和on作为时间介词_23
  8. 吴恩达机器学习13.推荐系统
  9. Jedis与Lua脚本结合
  10. 【三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】
  11. Android 代码中执行adb shell命令
  12. html图片闪光效果,CSS实现的一闪而过的图片闪光效果
  13. mysql创建表报错1055的原因_[Err] 1055
  14. python卡通滤镜_纯Python综合图像处理小工具(3)10种滤镜算法
  15. button 点击的涟漪效果
  16. 计算机网络覆盖的地理范围分类,计算机网络按地理范围可分为什么
  17. leetcode:32. 最长有效括号
  18. python爬取网页停止工作_python人员api停止工作
  19. java做RPG小游戏
  20. 【新书推荐】【2018.05】电磁兼容性的计算方法

热门文章

  1. java代码。继承。。。很戳我的心啊。。不太懂。super的真正用法
  2. oracle10g 学习 方向DBA三
  3. 异步fifo_异步FIFO设计
  4. 关于Oracle数据库19c中的关键字和保留字的说明
  5. XamarinEssentials教程设置首选项Preferences的值
  6. Web应用扫描测试工具Vega
  7. 伪造服务钓鱼工具Ghost Phisher
  8. iOS 9音频应用播放音频之第一个ios9音频实例
  9. Android渗透测试Android渗透测试入门教程大学霸
  10. 删除链表的倒数第n个节点 python_19.leetcode题目讲解(Python):删除链表的倒数第N个节点...