我们注意到总的颜色种类只有200,故我们可以先处理出所有云朵中每一种颜色有多少朵云朵拥有,此处我们约定用$cnt[] 表示$

然后暴力枚举将哪朵云分给老薛,记录三个临时变量$Max_{kk}, Max_{xuexue}, pos$

$分别表示kk能够得到的最大颜色种类数,薛薛能够得到的最大颜色种类数,以及分给薛薛的云朵的下标$

枚举的时候注意要优先满足$kk, 如果当前得到的Max_{kk} 和之前的一样,再考虑一下薛薛$

$关于枚举的时候如果得到除了当前云朵外其他云朵的总的颜色总数$

首先记录一下预处理的$cnt[]中一共有多少个 >= 1 的元素,记为res, 此处用数组下标表示云朵标号$

$那么在枚举云朵的时候,我们用tmp表示除了这朵云外还剩下多少种不同颜色,显然tmp = res - x$

$x 表示有几种颜色是只有这朵云拥有的$

$再枚举这朵云拥有的所有颜色,判断在cnt[] 中这种颜色是不是 刚好为1即可$

$注意到一朵云的颜色种类数最多只有10.$

$总的时间复杂度是O(10n)$

 #include <bits/stdc++.h>

 using namespace std;

 #define N 100010

 int main() {
int a[N][];
int b[N];
int f[];
int n, m, i, j, t, p;
scanf("%d%d",&n, &m);
memset(f, , sizeof f);
for (i = ; i <= n; ++i) {
scanf("%d",&a[i][]);
for (j = ; j <= a[i][]; ++j) {
scanf("%d",&a[i][j]);
f[a[i][j]]++;
}
}
for (i = ; i <= n; ++i) {
b[i] = ;
for (j = ; j <= a[i][]; ++j)
if (f[a[i][j]] == )
b[i]++;
}
t = ;
for (i = ; i <= n; ++i)
if (b[i] < b[t]) t = i;
else if (b[i] == b[t] && a[i][] > a[t][]) t = i;
puts("KK:");
j = ;
while (j == t) ++j;
printf("%d",j);
for (i = j + ; i <= n; ++i)
if (i != t)
printf(" %d",i);
printf("\n");
puts("Xuexue:");
printf("%d\n",t);
return ;
}

HZNUOJ 2508:双峰插云的更多相关文章

  1. 【叉积】【sdut 2508 图形密码】

    图形密码 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdutoj/p ...

  2. loj #2508. 「AHOI / HNOI2018」游戏

    #2508. 「AHOI / HNOI2018」游戏 题目描述 一次小 G 和小 H 在玩寻宝游戏,有 nnn 个房间排成一列,编号为 1,2,…,n,相邻房间之间都有 111 道门.其中一部分门上有 ...

  3. YTU 2508: 武功秘籍

    2508: 武功秘籍 时间限制: 1 Sec  内存限制: 128 MB 提交: 1384  解决: 438 题目描述 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的).  他 ...

  4. 【LOJ】#2508. 「AHOI / HNOI2018」游戏

    题解 把没有门的点缩成一个点 如果\(i->i + 1\)的钥匙大于\(i\),那么\(i\)不可以到\(i + 1\),连一条\(i\)到\(i + 1\)的边 如果\(i->i + 1 ...

  5. [HZNUOJ] 博

    Description 定义一个数字序列为“非下降序列”: 此处我们约定用$n\;表示数字序列的长度,下面定义在n \in [1, \infty]时有效$ $if \;\; n = 1:$ $\;\; ...

  6. [HZNUOJ] 使用Excel + Word 批量制作准考证

    一般程序设计考试或者ACM比赛都会使用临时账号登录,这时候就需要批量制作密码条 首先需要用Excel 存储队伍的信息 比如像这样分门别类的放好 然后在word 中制作好密码条样式 选择邮件->开 ...

  7. BZOJ 2508: 简单题

    题目大意: 加入直线,删除直线,求点到所有直线的距离的平方和. 题解: 把点到直线的距离公式写出来,然后展开.维护六个值,计算一个二元的多项式的最小值. 对x和y分别求导,导数都为零时取到极值.然后解 ...

  8. bzoj 2508: 简单题【拉格朗日乘数法】

    大概是对于f(x,y)求min,先把x看成常数,然后得到关于y的一元二次方程,然后取一元二次极值把y用x表示,再把x作为未知数带回去化简,最后能得到一个一元二次的式子,每次修改这个式子的参数即可. 智 ...

  9. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

随机推荐

  1. 使用BestSync同步软件与坚果云同步

    坚果云的免费用户可以享受每个月的1G上传与3G下载流量,同时号称是国内唯一支持WebDAV的云.我的工作备份的文档不多,正好手头有BestSync同步软件可以用.决定试试BestSync的与WebDA ...

  2. HashMap与TreeMap的区别?

    HashMap与TreeMap的区别? 解答:HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用Tre ...

  3. 文件I/O:文件流→序列化

    ★文件流 文件操作是最简单最直接也是最容易想到的一种方式,我们说的文件操作不仅仅是通过FileInputStream/FileOutputStream这么“裸”的方式直接把数据写入到本地文件(像我以前 ...

  4. linux系统web项目运行环境搭建

    允许本地访问端口:iptables -P OUTPUT ACCEPT MySQL数据库安装1.yum install mysql 2.yum install mysql-server 3.删除MySQ ...

  5. 【转】HDC,CDC,CWindowDC,CClientDC,CPaintDC等等

     转载出处:http://blog.sina.com.cn/s/blog_447611f20100lirt.html 首先说一下什么是DC(设备描述表) Windows应用程序通过为指定设备(屏幕,打 ...

  6. 基础-Eclipse 教程

    1.Eclipse 是一个开放源代码的.基于 Java 的可扩展开发平台.2.下载地址为: https://www.eclipse.org/downloads/.3.Eclipse 修改字符集 : W ...

  7. Bootstrap组件之下拉菜单

    .dropdown--设置父元素为下拉菜单组件,向下弹出子菜单: .dropup--设置父元素为下拉菜单组件,向上弹出子菜单: .dropdown-toggle--设置button为下拉菜单切换but ...

  8. boost::interprocess::managed_shared_memory(2)(std::deque)

    struct shareDataEx : shareData { int index; int total_size; }; typedef managed_shared_memory::segmen ...

  9. 我的JavaScript笔记--数据类型,预编译,闭包

     在我们js中存储数据的空间可以分为两种,堆内存和栈内存 堆内存:我们定义的那些引用数据类型的数据都会在堆内存中开辟空间. 栈内存:我们运行的js代码还有我们定义的基本数据类型,都直接在栈内存中存储 ...

  10. 【BZOJ4627】[BeiJing2016]回转寿司 SBT

    [BZOJ4627][BeiJing2016]回转寿司 Description 酷爱日料的小Z经常光顾学校东门外的回转寿司店.在这里,一盘盘寿司通过传送带依次呈现在小Z眼前.不同的寿司带给小Z的味觉感 ...