zoukankan      html  css  js  c++  java
  • 海亮游记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度即可

  • 相关阅读:
    linux 查找最后几条数据
    O(n) 取得数组中每个元素右边最后一个比它大的元素
    O(n) 取得数组中每个元素右边第一个比它大的元素
    位运算实现整数运算
    随手练——P1141 01迷宫
    迷宫寻路问题全解
    N皇后问题 各种优化
    八数码问题(三种解决办法)
    随手练——Uva-11584 划分成回文串(区间DP)
    【2016蓝桥杯省赛】试题C++ B组试题
  • 原文地址:https://www.cnblogs.com/xishirujin/p/11241144.html
Copyright © 2011-2022 走看看