题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=641&pid=1003

题意 :

给N集合, 每个集合由若干个正整数组成,

要求划分为L个部分, 使得每个部分的所有集合的交集非空

能划分输出YES, 否则NO

思路 :

一共N个集合, 划分的个数为1 - N个, 所以当 L > N 时必然是不行的

考虑如何取到最小的划分个数cnt, 如果 cnt <= L 则可行

方法 :

记录所有的数出现过的次数

每次都找一个出现次数最多的数, 将存在该数的集合作为一个划分, cnt++, 将该划分中所有集合中的数出现次数都减一, 直到不存在剩余数字为止, 再将cnt与L进行比较

#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std; const int MAXN = ;
const int MAX_NUM = 3e2+; int sett[MAXN][MAX_NUM];
int number_cnt[MAX_NUM];
int num[MAXN];
bool vis[MAXN]; int Max_Cnt()
{
int res = ;
for(int i = ; i < MAX_NUM; i++) {
if(number_cnt[i] > number_cnt[res]) res = i;
}
return res;
} void Init()
{
memset(number_cnt, , sizeof(number_cnt));
memset(vis, , sizeof(vis));
} int main()
{
int t;
int n, l; scanf("%d", &t);
while(t--) {
Init();
scanf("%d %d", &n, &l);
for(int i = ; i < n; i++) {
scanf("%d", &num[i]);
for(int j = ; j < num[i]; j++) {
scanf("%d", &sett[i][j]);
number_cnt[sett[i][j]]++;
}
}
int cnt = ;
for(int i = ; i < n; i++) {
int number = Max_Cnt();
if(number == ) break;
for(int j = ; j < n; j++) {
if(vis[j] == ) continue;
for(int k = ; k < num[j]; k++) {
if(sett[j][k] == number) {
vis[j] = ;
break;
}
}
if(vis[j] == ) {
for(int k = ; k < num[j]; k++) {
number_cnt[sett[j][k]]--;
}
}
}
cnt++;
}
if(cnt <= l) printf("YES\n");
else printf("NO\n");
} return ;
}

HDU 5506 - BestCoder Round #60 - GT and set的更多相关文章

  1. HDU 5505 - BestCoder Round #60 - GT and numbers

    题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=641&pid=1002 思路 : N有若 ...

  2. hdu 5667 BestCoder Round #80 矩阵快速幂

    Sequence  Accepts: 59  Submissions: 650  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536 ...

  3. hdu 5643 BestCoder Round #75

    King's Game  Accepts: 249  Submissions: 671  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6 ...

  4. hdu 5641 BestCoder Round #75

    King's Phone  Accepts: 310  Submissions: 2980  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

  5. BestCoder Round #60/HDU 5505 暴力数学

    GT and numbers 问题描述 给出两个数NN和MM. NN每次可以乘上一个自己的因数变成新的NN. 求最初的NN到MM至少需要几步. 如果永远也到不了输出-1−1. 输入描述 第一行读入一个 ...

  6. HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树

    zxa and leaf Problem Description zxa have an unrooted tree with n nodes, including (n−1) undirected ...

  7. HDU 5496 - BestCoder Round #58 - Beauty of Sequence

      题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=637&pid=1002 思路 : 考 ...

  8. HDU 5568 - BestCoder Round #63 - sequence2

    题目链接 : http://acm.hdu.edu.cn/showproblem.php?pid=5568 题意 : 给一个长度已知的序列, 给一个值k, 问该序列中有多少种长度为k的上升子序列 思路 ...

  9. hdu 5637 BestCoder Round #74 (div.2)

    Transform  Accepts: 7  Submissions: 49  Time Limit: 4000/2000 MS (Java/Others)  Memory Limit: 131072 ...

随机推荐

  1. 第二节,CCSpriteBatchNode CCSpriteFrameCache

    1,CCSpriteBatchNode 精灵集合类 其中Batch的英文含义是一批,一群的意思.他的对象常常包含了许多的精灵对象,这些精灵对象有一个共同的特点,那就是使用同一张文理图片.虽然是同一个纹 ...

  2. android listview综合使用演示样例_结合数据库操作和listitem单击长按等事件处理

    本演示样例说明: 1.自己定义listview条目样式,自己定义listview显示列数的多少,灵活与数据库中字段绑定. 2.实现对DB的增删改查,而且操作后listview自己主动刷新. 3.响应用 ...

  3. php开发中将远程图片本地化的方法

    检查文本内容中的远程图片,下载远程图片到本地的方法示例. /** * 下载远程图片到本地 * * @param string $txt 用户输入的文字,可能包含有图片的url * @param str ...

  4. ubuntu 切换JDK版本

    安装: 第一种方式:sudo apt-get install openjdk-7-jdk(or openjdk-6-jdk) 第二种方式:tar -zxvf jdk-7u79-linux-x64.ta ...

  5. 关于phonegap

    phonegap安卓环境搭建: http://www.cnblogs.com/Random/archive/2011/12/28/2305398.htmlhttp://ningtukun.blog.1 ...

  6. 一条insert语句批量插入多条记录

    一条insert语句批量插入多条记录 常见的insert语句,向数据库中,一条语句只能插入一条数据: insert into persons (id_p, lastname , firstName,  ...

  7. 在C#中internal关键字是什么意思?和protected internal区别

    我来补充一下,对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法.比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能, ...

  8. dsoframer组件详细使用(aspx.net)

    近来由于工作需要,要求实现一个office文档在线编辑器 关于在线操作office 我是一点经验没有 网上查了半天资料 锁定了一款组件(ActiveX控件dsoframer,一个用C++实现的offi ...

  9. Java知识整理一

    文档二 密码:java

  10. javascript触发input-file的click事件

    概述 input:file本身自带的样式不太好看,但是又没法设置样式. 由于系统限制,不能通过代码触发,只允许用户自主点击. 通常的解决办法是,把input:file透明化,实际上点击的还是input ...