NOIP回忆录

● 每周一言

成熟不是进步,但进步是一种成熟。

导语

是否还记得那一年的长郡机房,向总看NBA的哈哈大笑之声?是否还记得那一年刷的vijos和poj?是否还记得午休空调下的那一份盒饭?虽已去十年,但当时的酸甜苦辣依旧恍如昨日。在这里,不妨就用小斗当年所写的一套NOIP模拟题故事来细细回味一番。

回忆录

背景

正如科学家们预言的,在我们这个浩瀚的宇宙当中,存在着许许多多的像人类一样具有智慧生命的物种。它们当中有的像地球上的猩猩一样,大脑并不发达;可有的却强大得连我们人类都无法想象。而这也预示着灾难的到来。

公元2307年,地球防卫总部(此组织成立于2300年)收到了一封来自狮子座M66星云亚罗塔行星的光子信,信上说他们的舰队利用特殊的反探测系统经过了300年的星空之行终于抵达太阳系,准备一举夺取地球,原因是亚罗塔行星居民人口爆满,必须移民。发信目的是要劝地球人尽早投降,以免造成不必要的伤亡。投降后允许地球人搬进地底生活。眼看就要陷入一场生死浩劫,我们人类应该何去何从?

fig1

全民皆兵

问题描述

由于突如其来的外来入侵,地球防卫总部大大放宽了银河战队的选拔条件,现在紧急向全世界选拔银河战士来保卫地球。

终于,从世界巡回海选中有n个人脱颖而出,每一个人都有一个较高的战斗值。地球防卫总部要求在最后选出来的人中任何两个人都必须是没有一点关系的(包括亲戚关系),这样才能保证在战场上每位战士都能心无杂念地奋勇杀敌。

fig2

可恰恰不幸的是,在这n个人当中,某些人具有一些很遥远的亲戚关系,比如A的父亲的父亲的父亲的父亲与B的母亲的母亲的母亲的母亲是夫妻,那么就说A与B有亲戚关系。再说明白点,比如A和B有亲戚关系,B和C有亲戚关系,那么A和C就有亲戚关系。

而地球防卫总部想在1秒钟的时间内知道这n个人能组成多大的军队以及在保证人数最大的情况下的军队的最大战斗力(指军队中每个战士的战斗值之和)是多少,所以就把这个任务叫给了号称“编程天才”的你来解决。

输入:
第一行一个数n;
第二行n个数,第i个数表示第i战士的战斗值;
接下来若干行(行数<=n),每行两个数Ai和Bi,表示Ai和Bi两位战士具有微妙的亲戚关系。输入数据保证不出现Ai=Bi的情况,但一种情况多次出现是允许的,谁叫他们两太亲呢!

输出:
共两行,每行一个数;
第一行为最大军队人数;
第二行为军队的最大战斗力。

样例:
输入:
10
291 2306 668 2710 1524 1318 602 2991 2881 2951
4 6
9 4
4 7
9 1
10 1
7 10
1 9

输出:
5
10440

数据范围:
30%的数据n<=10;
100%的数据n<=300000。

灵台点将

问题描述

经过了全方位的侦察,我方宇宙侦察员Sexy运用他早已娴熟的骗分技巧找到了敌人在太阳系的基地的位置。人类正因此而举球欢庆时,敌人却悄无声息地打到火星轨道附近了。人类这才如梦初醒,紧急召开联合国应敌大会,但是,到了真正要真刀真枪的干起来时,地球防卫总部的“司令们”却没有一个人敢领兵出征。

fig3

不过在基层大众中不乏毛遂自荐。像我们可爱的J激情就是这么一个人,时刻充满这激情,时刻准备着为人类捐躯。于是,地球防卫总部决定在灵台比武,选出一名司令统帅银河战队赶赴前线破敌,并任命你督察比赛。

比武的规则是这样的:n个人(不包括J激情)依次围成一个圈,按一定的顺序(随机乱序)圈中相邻的两个人进行比武,输掉的人从圈中退出,最后剩下的一个人就是获胜者(每个能够获胜者获胜的几率我们可以视作相等)。因为世界上不存在两个完全相同的人,所以在所有参加比武的人中每两个人之间必然会一胜一败,由于科技的飞速发展,掌握人类体能秘密已不在是难事。

现在你知道任何两个人的比武输赢情况,想到J激情又是你在高中时信息组的好友,而他事先也跟你说过他务必要被选上,不然地球就要完了,并且为了使他在战场上有十二分的精力杀敌,他只能让自己比武一场,也就是说他只能参加最后一场比赛。因此,你斗转乾坤,施展某种神奇的计策直接让J激情参加终极PK。你现在的任务就是帮他计算一下他获胜的几率是多少(因为J激情只参加最后一场比赛,所以他就不站在圈中。结果用百分数表示,精确到万分位,为0的位也要输出,具体看样例输出)。

输入:
第一行一个数n,表示除开J激情一共有n个人参加比武;
第二行n个数0或1,第i个数为1表示J激情与第i个人比武能够获胜,反之输掉比赛;
接下来n行n列,第i行第j个数(i<>j )为1表示i能战胜j,反之j能战胜i;第i行第i个数都为1。
输入数据保证合法。

输出:
如果获胜的几率为0,就输出“You are failed.”;
否则输出一个百分数,要求如题意描述。

样例:
输入:
4
1 1 1 1
1 1 1 1
0 1 1 0
0 0 1 0
0 1 1 1

输出:
100.00%

数据范围:
30%的数据n<=10;
100%的数据n<=200。

克敌制胜

问题描述

别说J激情平常毛毛躁躁的,战场上的他可毫不含糊,孤身闯阵,奋勇杀敌,多般神勇,一鼓作气攻下了敌人驻月球、火星和土星的前线基地,真可谓一夫当关,万夫莫开。当下正浩浩荡荡的朝敌人的大本营天王星前进。

fig4

但是,敌人也不是吃干饭的,经受了月火土三大战役的失败后,他们摸清了一个事实,那就是J激情率领的银河站队所摆的战阵——银河九宫阵(指横、竖和对角线上的战士战斗力之和都等于15的九宫格,每个格子中的数都在1~9之间,并且不重复)非常厉害,所以在土星大战之后他们就对这种战阵进行了超强的光子干扰,也就是使阵中每个战士的战斗资料相互间打乱,这样就让战阵的战斗力大打折扣。

难怪刚才在土卫六的遭遇战打得很艰难,J激情恍然大悟。而他只会领兵作战,至于修复资料的工作自然就叫给了“编程天才”的你来解决。所以你只需告诉J激情资料最少移动的步数(指战斗值上下或左右相交换),如果怎么移动都无法恢复战阵,则输出-1。

输入:
一共有50个战阵给你修复;
每个战阵用一个3*3的数字矩阵表示,每一个数表示一个战士的战斗值;
相邻两个数字距阵不用空行隔开。

输出:
应该有50行,每行对应一个距阵修复的最少步数,如无法修复,则为-1。

样例:
样例只给出3个矩阵供大家参考。

输入:
1 5 2
6 9 3
8 4 7
1 8 6
4 2 3
9 5 7
5 1 9
4 8 3
2 7 6

输出:
5
6
6

直捣敌巢

问题描述

银河站队在J激情的率领下,终于冲破了重重关卡,打到了敌人的大本营——天王星。他们来到了敌人的基地前,没想到敌人把基地建在了很深的隧洞里。

fig5

这会儿J激情要用银河九宫阵进行攻击了!“砰!砰!砰!”,毫发无损?!再试一次,“砰!砰!砰!”,还是没用。J激情不得不请出地球防卫部的专家们来研究一下,他们发现这里一共有十扇这样的怪门,这些门不是不能打开,而是由于攻击强度不当,因为每扇门都有一个唯一确定的攻击强度数,攻击过猛或过轻都不能把门打开。

使用过光子探测器之后,他们还发现洞口旁边的大石头上面有一些密密麻麻的奇怪文字。“赶快使用万能语翻译机!”J激情迫不及待地下命令。

文字大意是这样的:
R是一个N^K进制数,并满足以下条件:
1. R至少是个2位的N^K进制数。
2. 作为N^K进制数,除最后一位外,R的每一位严格小于它右边相邻的那一位。
3. 将R转换为N进制数Q后,则Q的总位数不超过W。

每扇门上都有3个数N、K和W,打开门所需攻击强度取决R的个数。

输入:
一行3个数N、K和W,其间用空格隔开,末尾无空格。

输出:
一个数,为打开怪门的攻击强度值(为十进制数)。

样例:
输入:
2 3 7

输出:
36

数据范围:
100%的数据保证:2<=N<=10,3<=K<=4,W<=100;
1~5个点时限为1s;
6~10个点时限为2s。

尾声

经过了4年(机房1小时为一年)激烈的反侵略星际战争,地球人终于打败了来犯之敌,为此联合国召开表彰大会,J激情和LL双双荣获一等攻。

但是这并不意味着人类就永远和平了,因为潜在的灾难与危险仍然存在于浩瀚的宇宙深处甚至是人类本身,人类在某些方面的确是需要改变的。希望人类在今后的路途中多多反省,切忌自以为是,鼠目寸光。

谨以此文纪念十年前的NOIP2007。

结语

感谢各位的耐心阅读,后续文章于每周日奉上,敬请期待。欢迎大家关注小斗公众号 对半独白

face

猜你喜欢

转载自blog.csdn.net/cherrylvlei/article/details/78884781