题目链接:868C - Qualification Rounds

题目大意:有\(n\)个题目,\(k\)个人,每个人可能做过这\(n\)个题里的若干道,出题方要在这\(n\)个题目里选若干个出来作为一套题。称一套题有趣的当且仅当对于任意一个人,他在这套题里做过的题目数不超过总题数的一半,问是否存在这样的一套题。

题解:设第\(i\)道题有\(p_i\)个人做过,显然当存在有\(p_i =0\)时单独把这道题放入套题里即可。

   若存在\(p_i =1\),设做过这道题的人为\(X\),则只需要找到一道题\(j\),使得\(X\)没做过这道题,这时只要出\(i,j\)这两道题就好了。若没有找到这样的题,则说明\(X\)做过全部的题,必然无解。

   当排除了以上情况后,可以发现有\(p_i\geqslant 2\)恒成立,因此若设套题中的题目个数为\(x\),则有\(\sum p_i\geqslant 2x\)。如果存在一套有趣的题,则对这套题一定有\(\sum p_i\leqslant \frac{kx}{2}\)(每个人最多知道\(\frac{x}{2}\)道题,一共\(k\)个人)。所以在这种情况下,若\(k<4\)则无解,否则一定有\(\sum p_i = 2x\),即\(p_i =2\)。找出两道知道的人不重复的题就好了,否则的话由于任意两道题都会有相同的人知道,一定会导致无解。用二进制的形式记录每道题有哪几个人知道,放入集合中查找就好了。

#include<bits/stdc++.h>
using namespace std;
#define N 100001
int n,k,a,b,f[N][],p[N],w[N];
set<int>s;
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<=n;i++)
{
for(int j=;j<=k;j++)
scanf("%d",&f[i][j]),
w[i]^=f[i][j]<<(j-),
p[i]+=f[i][j];
if(p[i]==)return printf("YES\n"),;
s.insert(w[i]);
}
for(int j=;j<k;j++)
{
a=b=;
for(int i=;i<=n;i++)
{
if(p[i]== && w[i]==<<j)a=;
if(!(w[i]&(<<j)))b=;
}
if(a)return printf("%s\n",b?"YES":"NO"),;
}
for(auto i:s)if(s.count(-i))return printf("YES\n"),;
return printf("NO\n"),;
}

[Codeforces Round #438][Codeforces 868C. Qualification Rounds]的更多相关文章

  1. 【Codeforces Round #438 C】 Qualification Rounds

    [链接]h在这里写链接 [题意] 给你n个问题,每个人都知道一些问题. 然后让你选择一些问题,使得每个人知道的问题的数量,不超过这些问题的数量的一半. [题解] 想法题. 只要有两个问题. 这两个问题 ...

  2. [Codeforces Round #438][Codeforces 868D. Huge Strings]

    题目链接:868D - Huge Strings 题目大意:有\(n\)个字符串,\(m\)次操作,每次操作把两个字符串拼在一起,并询问这个新串的价值.定义一个新串的价值\(k\)为:最大的\(k\) ...

  3. Codeforces Round #438 (Div.1+Div.2) 总结

    本来兴致勃勃的想乘着这一次上紫,于是很早很早的到了机房 但是好像并没有什么用,反而rating-=47 Codeforces Round #438(Div.1+Div.2) 今天就这样匆匆的总结一下, ...

  4. Codeforces Round #438 C - Qualification Rounds 思维

    C. Qualification Rounds time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  5. 【Codeforces】868C. Qualification Rounds

    [题目]C. Qualification Rounds [题意]给定n个问题和K个人,给定每个人知道的问题列表,求能否找到一个非空问题集合,满足每个人知道的集合中问题数量都不超过集合总题数的一半.n& ...

  6. Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combined)

    A. Bark to Unlock 题目链接:http://codeforces.com/contest/868/problem/A 题目意思:密码是两个字符组成的,现在你有n个由两个字符组成的字符串 ...

  7. Codeforces Round #438 by Sberbank and Barcelona Bootcamp (Div. 1 + Div. 2 combine

    最近只想喊666,因为我是真得菜,大晚上到网吧打代码还是很不错的嘛 A. Bark to Unlock time limit per test 2 seconds memory limit per t ...

  8. 【Codeforces Round 438 A B C D 四个题】

    题目所在比赛的地址在这里呀 A. Bark to Unlock ·述大意:       输入一个目标串.然后输入n(1<=n<=100)个串,询问是否可以通过这些串收尾相接或者它本身拼出目 ...

  9. Codeforces Round #438 C. Qualification Rounds

    Description Snark and Philip are preparing the problemset for the upcoming pre-qualification round f ...

随机推荐

  1. python之路(2)集合(set)和字符串格式化

    目录 集合(set) 字符串的格式化(%和format) 集合(set) {‘a’,'b','c','d','e'} 定义:有不同元素组成的集合,集合的元素为不可变类型(数字,字符串,元组),集合是一 ...

  2. CSS Grid基于网格的二维布局系统(详细教程)

    .grid-wrap{ display: inline-flex; padding: 20px; background: #f4f4f4; word-break: initial; } .handle ...

  3. 【Unity]】AR小工具-Vuforia

    很有意思的增强现实玩具,六分钟应用. https://www.youtube.com/watch?v=khavGQ7Dy3c

  4. Vue技术内幕 出去看看吧

    Vue的 Vue构造函数的出生 出生文件 ./instance/index  实例方法和属性 .global-api/index   静态方法和属性 Vue平台化包装 Web平台化 vue 初始化 m ...

  5. Python中__get__, __getattr__, __getattribute__的区别及延迟初始化

    本节知识点 1.__get__, __getattr__, __getattribute__的区别 2.__getattr__巧妙应用 3.延迟初始化(lazy property) 1.__get__ ...

  6. springboot上传文件 & 不配置虚拟路径访问服务器图片 & springboot配置日期的格式化方式 & Springboot配置日期转换器

    1.    Springboot上传文件 springboot的文件上传不用配置拦截器,其上传方法与SpringMVC一样 @RequestMapping("/uploadPicture&q ...

  7. Django-3-Template模板

    模板是html文档+Django逻辑语句的组合. 一.变量和标签 变量通过{{ }}来表示,两个大括号中间是变量名. 标签通过{% %}来表示,就是Python中的函数和方法. 常用标签: {% fo ...

  8. Idea 问题记录

    日常问题记录 下载IDEA, tomcat ,下载jdk 前言:java net对比 Java:JDK  .NET:.NetFramework WEB服务器 Java:Tomcat,JBoss,Web ...

  9. css3之border-radius理解

    在日常项目过程中,border-radius这个属性算是非常常用的属性之一了,通过设置元素的border-radius值,可以轻松给元素设置圆角边框,甚至实现绘制圆.半圆.四分之一的圆等各种圆角图形. ...

  10. Lua 中 pairs 和 ipairs 的区别

    ipairs (t) Returns three values: an iterator function, the table t, and 0, so that the construction ...