Problem A
妁艷身為一個高中生,平時最喜歡做的事除了玩電腦,還是玩電腦。
他最喜歡玩的遊戲中,有一個遊戲叫做「Nuclear Fusion」。
遊戲的玩法如下:
1 . 一開始會有一個N * M的棋盤。
2 . 每個格子只會有三種狀態:
一種是什麼都沒放,用'.'代表;
一種是放了神祕元素A,用'P'代表;
一種是放了神祕元素B,用'W'代表。
3 . 當兩個元素相鄰(也就是他們所在的格子有共邊),妁艷只要點一下那條邊,
A、B元素就會消失並產生帥氣的特效。
4 . 在遊戲的初始盤面中,A元素旁最多只會有一個B元素。
因為妁艷很懶,可是卻很喜歡核融合時的特效,所以請告訴他至少要點幾條邊才 可以看到最多次的特效。
Input
第一行有兩個正整數N,M。
接下來N行,每行有M個字元代表初始的盤面。保證每個字元一定是'.'、'P'、'W' 其中一個。
N , M <= 3000
Output
請輸出一個整數代表妁艷最少要點幾條邊才可以看到最多次的特效。
Sample Input 2 3
PPW W.P
Sample Output 2
Problem B
百年後的未來,某些狂熱科學家創造了人造生物"Elcatnet",中譯"手觸"。
雖然手觸原本是寄生動物,但因為手觸繁殖力強加上他們的突變機制與原來的生 物不同,他們是靠自己的意志產生突變的!
很快地,出現了會光合作用的手觸、會獵捕其他生物的手觸、會分解動植物遺骸 的手觸。特別的是,手觸會把卵生在其他物種體內,吸取宿主的養分。
五年後,有一隻手觸從實驗室逃出。三十年內,手觸造成世界各地嚴重得生態問 題。一百年內,手觸把地球上70%的物種消滅。
人類因為懼怕這些手觸,而移民到了其他星球。慶幸的是,根據人類研究發現手 觸沒有求知慾,所以不必擔心他們會發明太空梭。不過事情似乎沒有這麼簡單。
把時間往回推,此時是手觸才被創造不久,各個領域的科學家都爭相研究手觸。
然而身為建國中學的你也不例外,你正在實驗室作實驗。你知道:
1.手觸們只會進行兩種互動,不是攻擊就是交配。
2.你研究的手觸只有兩種,一種是s觸,另一種是m觸。同族間只會交配,異族
間只會攻擊。
3.有些s觸會因為m傾向變大而突變成m觸;有些m觸會因為s傾向變大而突 變成s觸。
4.因為你無法同時觀察所有手觸,所以當你發現有隻手觸你疏忽了,你會暫時把 他歸為未知,因為他可能在你疏忽的這段期間突變數次,但你可藉由之後的紀錄 重新得知他是哪一種手觸。
有時候你會因為被手觸攻擊而記錄錯所以你必須寫一個程式來檢查。
如果一個紀錄與你當下紀錄產生矛盾那他會被刪除。
Input
輸入第一行含兩個正整數n,q代表手觸數量跟記錄數量 每組紀錄第一個數字是一整數c
如果c是0或1後面會有兩個正整數a,b 0代表他們在交配,1代表他們在Battle 如果c是2或3後面會有兩個正整數k
2代表手觸k突變成另一種了,3代表你疏忽了手觸k 1<=a,b,k<=n(保證a不等於b)
Output
輸出一個整數代表總共有幾筆資料被刪除了
Sample Input 1 2000000 8 0 1 2 0 2 3 1 1 3 2 3 1 1 3 3 5 2 5 3 6
Sample Output 1 1
Sample Input 2 2000000 8 0 1 2 0 2 3 3 2 1 1 3 1 1 2 1 2 3 1 3 25 1 2 25
Sample Output 2 2
對Sample Input 1
第三筆記錄是錯的因為他與第一筆和第二筆記錄矛盾 第五筆記錄是沒錯因為3號手觸突變了
對Sample Input 2
第四筆記錄是錯的因為他與第一筆和第二筆記錄矛盾 第五筆和第六筆記錄是沒錯因為你疏忽了2號手觸 第八筆記錄是錯的因為他與第六筆和第七筆記錄矛盾
PS.時限為「單筆」3秒
Problem C
我們的故事主角-妁艷, 經過一連串的事件和冒險,打敗了魔王,救出了妹妹.
現在讓我們回到一切事情發生前的某一個晚上。
妁艷走在放學回家的路上,經過某個高架橋下。這時,妁艷注意到旁邊有一個詭 異的中年男子坐在有靠背的長椅上,一手搭在椅背上.
中年男子的另一手指尖這時出現了火球。
妁艷看到了這幅奇景,心中表示贊歎: "嗚吼!好魔法!"
中年男子彷彿聽到了妁艷的心聲,用含情脈脈的眼神對對妁艷說: "不學嗎?"
男子對妁艷說: "只要在17歲以前失去乙姬的資格,就能像我一樣成為魔法使了!"
妁艷想了想,雖然不太懂什麼是乙姬的資格,但大概就是這個意思了吧?
已經完全心動了的妁艷,想到隔天剛好是自己17歲生日,必須立即採取行動!
妁艷奔回家,找家中唯一的妹妹來幫忙,他衝進了妹妹的房間,此時妹妹正在房 間裡玩著布偶。
妁艷撲向了妹妹.
"嗚哇! 葛格,怎麼突然…!?"
"我等不下去了,我…,我,…,我需要妳!!!"
"啊啊,不行,嗚嗚葛格,不要…"
妹妹的反抗讓劇情無法發展下去.
妁艷知道妹妹喜歡把床上的布偶從小到大排成一列。(常常偷看怎麼會不知道 呢?)
為了討好妹妹讓她乖乖就範,妁艷決定快點完成妹妹手邊的工作,讓她玩不下去。
由於妁艷只有兩隻手,他只能每次交換兩個布偶.
交換所花費的時間恰和兩個布偶之間的距離成正比。
為了快速完成,妁艷要用最短的時間把布偶從小到大排好.
本題為互動題,請先引入#include"puppets.h".
puppets.h內有三個函式:
int Init();
請先呼叫此函式,取得變數n,代表妹妹床上有幾個布偶.
在做其它事之前,請先呼叫此函式恰好一次,以初始化程式.
int Get(int i);
回傳第i個位置目前擺的布偶目前是第幾大.
void Swap(int i,int j);
交換第i,j個布偶,並花費|i - j|的時間.
void Finish();
當所有布偶都排完之後,呼叫此函式恰好一次.
若呼叫函式的範圍超過布偶大小,或者違法呼叫函式,將會產生不可預期的結果.
妁艷必須使用最少的時間完成任務,一旦超過最佳解所需的時間妹妹就會掙脫.
一個只要有愛與勇氣及信任的力量就會AC的CODE:
n = Init(); // n == 3
ary[1] = Get(1); //ary[1] == 1 ary[2] = Get(2); //ary[2] == 3 ary[3] = Get(3); //ary[3] == 2
Swap(2,3); // ary[2] == 2,ary[3] == 3,cost = 1 Finish();
Problem D
雖然妁艷平時都不讀書,但是數學卻可以每次考試都輕鬆電爆全場。
有一次在上直角座標的時候,他發現了座標點之間的神祕關係。
現在平面上有N個點,每個點都有自己的編號(1 ~ N)。以a.x、a.y分別表示一個 點a的x、y座標。如果兩個點a , b滿足(a.x - b.x)*cos(π*a.y)*cos(π*b.y) > 0且 b的編號大於a,則這個點對可以讓妁艷的興奮度加一。
請告訴妁艷,當他看著這N個點時,他的興奮度上升多少。
Input
第一行有一個正整數N,代表有幾個點。接下來的N行,每行有兩個整數x,y,
代表每個點的座標。
2 ≤ N ≤ 300,000
0 ≤ 座標的絕對值 ≤ 10^9,且點不會重疊。
Output
輸出一個整數,代表 |Δ興奮度|。
Sample Input 3
0 1 2 3 4 5
Sample Output 3
Hint
1. 當|n|是奇數時,cos(π*n) = -1,當|n|是偶數或0時,cos(π*n) = 1。
2.
(2-0)*(-1)*(-1) = 2 > 0 (4-0)*(-1)*(-1) = 4 > 0 (4-2)*(-1)*(-1) = 2 > 0