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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章