HZNUOJ 2508:双峰插云
我们注意到总的颜色种类只有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:双峰插云的更多相关文章
- 【叉积】【sdut 2508 图形密码】
图形密码 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 题目链接:http://acm.sdut.edu.cn/sdutoj/p ...
- loj #2508. 「AHOI / HNOI2018」游戏
#2508. 「AHOI / HNOI2018」游戏 题目描述 一次小 G 和小 H 在玩寻宝游戏,有 nnn 个房间排成一列,编号为 1,2,…,n,相邻房间之间都有 111 道门.其中一部分门上有 ...
- YTU 2508: 武功秘籍
2508: 武功秘籍 时间限制: 1 Sec 内存限制: 128 MB 提交: 1384 解决: 438 题目描述 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的). 他 ...
- 【LOJ】#2508. 「AHOI / HNOI2018」游戏
题解 把没有门的点缩成一个点 如果\(i->i + 1\)的钥匙大于\(i\),那么\(i\)不可以到\(i + 1\),连一条\(i\)到\(i + 1\)的边 如果\(i->i + 1 ...
- [HZNUOJ] 博
Description 定义一个数字序列为“非下降序列”: 此处我们约定用$n\;表示数字序列的长度,下面定义在n \in [1, \infty]时有效$ $if \;\; n = 1:$ $\;\; ...
- [HZNUOJ] 使用Excel + Word 批量制作准考证
一般程序设计考试或者ACM比赛都会使用临时账号登录,这时候就需要批量制作密码条 首先需要用Excel 存储队伍的信息 比如像这样分门别类的放好 然后在word 中制作好密码条样式 选择邮件->开 ...
- BZOJ 2508: 简单题
题目大意: 加入直线,删除直线,求点到所有直线的距离的平方和. 题解: 把点到直线的距离公式写出来,然后展开.维护六个值,计算一个二元的多项式的最小值. 对x和y分别求导,导数都为零时取到极值.然后解 ...
- bzoj 2508: 简单题【拉格朗日乘数法】
大概是对于f(x,y)求min,先把x看成常数,然后得到关于y的一元二次方程,然后取一元二次极值把y用x表示,再把x作为未知数带回去化简,最后能得到一个一元二次的式子,每次修改这个式子的参数即可. 智 ...
- (转) [it-ebooks]电子书列表
[it-ebooks]电子书列表 [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...
随机推荐
- js移除某一类的div
(转载)Javascript removeChild()不能删除全部子节点的解决办法 在Javascript中,只提供了一种删除节点的方法:removeChild().removeChild() ...
- 第二百三十八节,Bootstrap输入框和导航组件
Bootstrap输入框和导航组件 学习要点: 1.输入框组件 2.导航组件 3.导航条组件 本节课我们主要学习一下Bootstrap的两个个组件功能:输入框组件和导航导航条组件. 一.输入框组件 文 ...
- 第一百四十七节,封装库--JavaScript,滑动导航
JavaScript,封装库--滑动导航 效果图 html <!--滑动导航--> <div id="nav"> <ul class="ab ...
- 蓝桥杯 第三届C/C++预赛真题(6) 大数乘法(数学题)
对于32位字长的机器,大约超过20亿,用int类型就无法表示了,我们可以选择int64类型,但无论怎样扩展,固定的整数类型总是有表达的极限!如果对超级大整数进行精确运算呢?一个简单的办法是:仅仅使用现 ...
- Angular2 初识
AppComponent 壳的三个实现文件: app.component.ts— 组件的类代码,这是用 TypeScript 写的. app.component.html— 组件的模板,这是用 HTM ...
- Java安全API
java提供了完整的密码学API,我们可以结合密码学相关的概念来系统的学习这些API. 1.密码学简介(crypto) 密码学通俗来说就是研究如何对信息进行加密和破密,如果不是专门研究信息安全,通常我 ...
- 63、具有过渡动画效果的布局Layout
下面,下来看一个Demo的效果,代码如下: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- AtomicInteger保证线程安全的全局变量
现有业务场景需要做一个线程间的全局变量,并且实现自增效果. 初始使用了volatile 来保证count的安全性,如下: import java.util.concurrent.ExecutorSer ...
- 我的JavaScript笔记--面向对象
单例模式 ??(基于对象,不能批量生产) var person = { name: "ywb", sayHi: funct ...
- angularjs中的$destroy和$timeout
module.controller("TestController", function($scope, $timeout) { var onTimeout = function( ...