海亮游记DAY1
额……这几天来补一下原来欠的博客(逃)
好了,言归正传,今天是来海亮的学习的第一天,嗯,一来就考试,搞什么啊~~
先把题目放出来:
1.黑客的平均数
(average.cpp)
【时空限制】
时间限制:4s
空间限制:256MB
【问题描述】
Chty_syq是一名黑客,但是他运气不佳,选课时段来临时,他选的课全都掉了,因此他想要侵入浙江大学教务网报复那些抢他课的欧皇。
在入侵的过程中,Chty_syq得到了一串密钥,这个密钥是一个长度为n的序列,为了破解这个密钥,他必须求出序列中一段连续子序列的最大平均值,且这个连续子序列的长度不小于k。
众所周知,Chty_syq不屑于做这种简单的问题,于是他把这个问题扔给了你,如果你能解决这个体力活,他将不再嘲笑你。
【输入格式】
第一行两个正整数n,k。
第二行n个整数表示这个序列。
【输出格式】
一个浮点数表示答案,保留6位小数。
【输入输出样例1】
average.in |
average.out |
4 3 3 4 1 2 |
2.666667 |
【输入输出样例2】
average.in |
average.out |
8 6 4 7 9 5 8 1 9 10
|
7.000000 |
【数据范围】
对于30%的数据,
对于100%的数据,
2.染色
(color.cpp)
【时空限制】
时间限制:1.5s
空间限制:256MB
【问题描述】
纵横交错兮天下之局,谁能参悟兮世事如棋。世事难料,亦如棋局之难料。
Chty_syq偶然间获得了一个棋局,传说其中暗含天机。已知棋局上有n个棋子,第i个棋子的坐标为,为了破解天机,需要对这些棋子进行黑白染色,然后分别计算黑色棋子两两间曼哈顿距离的最大值A,以及白色棋子两两间曼哈顿距离的最大值B,如果能求出一种染色方案使得的值最小,Chty_syq就能勘破天机。
注:两点的曼哈顿距离定义为
但是这个问题太简单了以至于Chty_syq不屑于去做,于是他把窥探天机的机会留给了你,你需要求出这个最小值,以及最小值对应的染色方案的数量。
【输入格式】
第一行,一个整数n表示棋子个数。
接下来n行,每行两个整数,表示棋子的坐标。
建议本题不要使用纯cin读入数据。
【输出格式】
一行两个整数,分别表示最小值及其对应的方案数。
方案数对取模。
【输入输出样例1】
color.in |
color.out |
2 0 0 1 1 |
0 2 |
【输入输出样例2】
color.in |
color.out |
4 0 0 0 1 1 0 1 1 |
1 4 |
【输入输出样例3】
color.in |
color.out |
3 0 0 1000 1000 5000 5000 |
2000 2 |
【数据范围】
对于20%的数据,
对于40%的数据,
对于60%的数据,
对于100%的数据,
3.水群合并计划
(group.cpp)
【时空限制】
时间限制:1.5s
空间限制:128MB
【问题描述】
我们知道,海亮中学信奥群禁止水群,于是同学们密谋另外建立一个群用来水群。由于群主可以为所欲为,所以每个同学都想成为群主,于是开始的时候,每个人都建立了一个群,群里只有一个人,显然这是水不起来的,于是在机房大佬范晨阳的带领下,开始把所有的群合并为一个大群,史称“水群合并计划”。
合并计划如下:每个群的群员都有一个编号,对于一个n个人的群,群员从进行编号。对于2个群,先找出一个人数较少的群(如果两群人数相等则随便挑选一个)A,假设其人数为,接着我们将另一人数较多的群B的所有成员的编号都加上,并将这些成员全部加入群A。除此之外,一个群在一天内只能参与一次合并,也就是说在某一天合并而成的新群在当天不能再次参与合并。
众所周知,OI 圈中盛行互膜。当2个群合并时,他们之间的一些群成员会进行互膜。对于每个原 B 群中的成员,假设其在新群中的编号为(),那么他会与新群中编号为的成员互膜。
现在我们知道最终的大群里有n个人,以及m条互膜记录,请你验证最初的群是否能够通过合法的合并操作得到这些互膜记录。如果答案是肯定的,求出完成“水群合并计划”的最小天数d。
【输入格式】
本题有多组数据,第一行一个整数 T,表示数据组数,接下来依次描述各组数据。
第一行2个整数n,m,意义见题目描述。
接下来m行,每行2个整数 u,v,描述了当前群内编号为 u 的成员和当前群内编号
为v的成员曾经互膜过一次(他们进行这次互膜时的编号并不一定为 u 和 v)。
需要注意的是,这些互膜记录并不一定是按时间顺序给出的。
【输出格式】
对于每组数据,输出一行:如果该群不合法,输出,否则输出最小的 d。
【输入输出样例1】
group.in |
group.out |
2 1 0 2 0 |
0 -1 |
【输入输出样例2】
group.in |
group.out |
2 3 3 0 1 0 2 1 2 4 6 0 1 1 2 2 3 3 0 0 2 1 3 |
2 3 |
【数据范围】
对于10% 的数据,保证 T = 1
对于20% 的数据,保证 n≤10,m≤10
对于50% 的数据,保证 n≤1000
对于100% 的数据,保证 T≤10,1≤n≤100000,0≤m≤100000,0≤u,v< n
这个就是题目,
然后对于T1:
这是一道sb题(借用一下_liurunda之名言)
原谅我的懒惰,很清楚的,
下面我们去看一看T2:
这道题中间需要用到一个距离的转化(即:曼哈顿距离转化为切比雪夫距离),这个转化其实也很简单,就是将坐标轴旋转45度即可