題零 枚舉 (50 分)
程序名稱: PROGRAM0.EXE
輸入: 標準輸入
輸出: 標準輸出
最長運行時間: 1 秒
編程讀入一個整數 N,然後按指定格式輸出 N2個整數。
輸入
輸入只包含一個整數 N (1 N 10)。
輸出
輸出有 N 行,每行有 N 個整數,各以一個空白符分隔。在第 i 行的第 N 個整數是 N – i + 1,餘下每個整數都比右面的整數大並且差為 N - 1。
樣例輸入
4
樣例輸出
13 10 7 4 12 9 6 3 11 8 5 2 10 7 4 1
題一 核能反應器(100 分)
程序名稱: PROGRAM1.EXE
輸入: 標準輸入
輸出: 標準輸出
最長運行時間: 1 秒
隨著核能變得愈來愈流行,物理學家瓊斯博士想做一些核能實驗,他製作了一個核能 反應器,開始進行鈾粒子實驗。
核能反應器可以被表達成一個(0, 0)至(N, N)座標系統。反應器內共有 M 粒粒子,每粒 粒子的 x 座標及 y 座標都為整數,同一點上可以有多於一粒粒子。除此之外,每粒粒子 都有強度 Si。
瓊斯博士很興奮地發現,當反應器內的粒子有足夠的強度時,反應器會達到臨界點並 爆炸,從而產生巨大的能量。他高興得大聲地歌唱和瘋狂地跳舞,但他忘記了反應器 與他都在實驗室內,當反應器爆炸時,他也會死掉!
作為瓊斯博士的助手,你立即把一塊分離板裝進核能反應器內,反離板可以是垂直(y 軸平行)或向右沿對角線方向(指向東北和西南)。你必須找一個適當的位置(x 軸相交的 位置必定在整點)去裝上分離板使得粒子的強度均等地分開在分離板的兩邊。對於剛好 在分離板上的粒子,它們會被分離板吸收,而你不用考慮它們。
輸入
第一行 3 個整數 N, M, Dir。Dir 可以是 0 或 1,0 表示你一定要垂直放置分離板;而 1 表示你一定要沿對角線方向放置分離板。對於接下來的 M 行,每行都有 3 個整數 Xi,Yi 和 Si,表示第 i 粒粒子的位置以及它的強度。
輸出
輸出一個整數 a,表示代表分離板的線與 x 軸相交於 a。
如果 Dir 是 1,a 可以小於 0,大於 N 或在 0 和 N 之間(包括 0 和 N)。
如果有多於一個答案,輸出任何一個答案。
如果沒有答案符合要求,輸出”OH NO”(不要引號)。
樣例輸入一
4 5 0 1 1 3 2 1 3 0 3 1 4 4 2 3 4 2
樣例輸出一
2
樣例輸入二
4 5 1 1 1 3 2 1 3 0 3 1 4 4 2 3 4 2
樣例輸出二
0
說明
樣例1) 兩邊的強度均為4 樣例2) 兩邊的強度均為3
約束條件
對於所有測試數據:
3 N 100
1 M 106
0 Xi, Yi N
1 Si 1000
一共有 4 批測試數據,每批佔 25 分。
第 1 批:
Dir = 0
對於所有 i,Si = 1
1 M 1000 第 2 批:
Dir = 0 第 3 批:
Dir = 1
對於所有 i,Si = 1
1 M 1000 第 4 批:
Dir=1
題二 光譜辨認(100 分)
程序名稱: PROGRAM2.EXE
輸入: 標準輸入
輸出: 標準輸出
最長運行時間: 1 秒
瓊斯博士已經研究光譜很多年了,他知道每一種元素都有一個獨特的光譜。每次他發 現一種未知元素的新光譜,他都會嘗試把未知元素的光譜和已知元素的光譜配對去確 認未知元素是否新元素。由於技術上的限制,瓊斯博士只能看到光譜線的三種顏色:
黑(B)、白(W)、灰(G)。
一元素的「完整光譜」由它的「光譜基」重覆組成。給出一已知的元素的光譜基,請你 和未知元素的完整光譜比較,並計算出它的差異值。差異值的定義是所對應不同顏色 的光譜線的數量。
每一條在光譜基中的光譜線都可以是完整光譜的開始。例如,光譜基'WBGB'能生成四 種不同的完整光譜:
如果完整光譜由第一個'W'開始,可生成 'WBGBWBGB...' 如果完整光譜由第一個'B'開始,可生成 'BGBWBGBW...' 如果完整光譜由第一個'G'開始,可生成 'GBWBGBWB...' 如果完整光譜由第二個'B'開始,可生成 'BWBGBWBG...'
瓊斯博士很想知道他所觀察到的完整光譜和該已知元素的最少差異是甚麼。你能幫助 他嗎?
輸入
第一行包含一個整數,N,所觀察完整光譜的光譜線數量 第二行有 N 個字符:Si表示觀察光譜第 i 條光譜線的顏色 第三行有一個整數 M,光譜基中的光譜線數量
第四行有 M 個字符,Pi表示光譜基第 i 條光譜線的顏色
輸出
一個整數,表示最小差異值。
樣例輸入
9
BWWGWWBGG 4
WBGB
樣例輸出
3
說明
光譜基共有四個可能的開始位置 WBGBWBGBW - 差異是 8
BGBWBGBWB - 差異是 7 GBWBGBWBG - 差異是 7 BWBGBWBGB - 差異是 3
因此,第四個基本譜的開始位置是最佳配置。和觀察光譜的差異是 3。
約束條件
對於所有測試數據:
1 N 2 x 105
1 M 2000
Si, Pi 只能是 'B','W','G'
對於 50%的測試數據:
1 M 10
對於 25%其他的測試數據:
Pi 只能是 'B'或'W'
題三 重力遊戲(100 分)
程序名稱: PROGRAM3.EXE
輸入: 標準輸入
輸出: 標準輸出
最長運行時間: 1 秒
瓊斯博士是一個雄心勃勃的科學家。有一天,他忽發奇想:「既然牛頓能夠發現重力,
為何我不能創造重力?」經過一番努力,他終於創造了重力控制機!
為了測試重力控制機,瓊斯博士設計了一個特殊的盒子,盒子內有一些障礙物。然 後,他把一個可以測量其所經過之距離的球放入盒子。實驗過程中,瓊斯博士把重力 的方向設定成東、南、西或北其中之一,球會一直朝著這個方向滾動,直到它碰到了 障礙物或邊界為止。當球停止滾動,瓊斯博士重新設定重力的方向。注意,設定前後 的重力方向可以相同。
瓊斯博士需要知道那個球所滾動的總距離。瓊斯博士把這件工作交給他的助手,也就 是你。給出盒子的大小,障礙物的位置,球的初始位置和設定重力方向的次序,請計 算球所經過的總距離。
輸入
第一行有三個整數,N,M 和 C,分別代表盒子的寬度,長度和控制重力的序列的長 度。
接下的 N 行,每行有 M 個字符,其中 '.' 代表空格而 '#' 代表障礙物。
接下的一行有兩個整數,表示球一開始的所在的行數和列數,這確保是一個空格。
最後一行包含一個長度為 C 的字符串,每個字符將是’N’、’E’、’S’或’W’,分別代表重 力來自北,東,南及西。
輸出
輸出只應包含一個整數,代表球所經過的總距離。
樣例輸入
3 4 4
#...
....
.##.
3 1 NENW
樣例輸出
7
約束條件
對於所有測試數據:
1 N,M 1000
1 C 106
對於 50%測試數據:
1 N,M 100
1 C 1000
題四 環廻電路(100 分)
程序名稱: PROGRAM4.EXE
輸入: 標準輸入
輸出: 標準輸出
最長運行時間: 1 秒
你大概不知道環廻電路是甚麼。它是瓊斯博士的其中一項發明。因為操作這電路時需 要極大的能源,所以電路的設計變得十分困難的。多得他發明了的核能反應器,他可 以在實驗室中產生足夠能源去設置環廻電路。
在環廻電路中,一共有N個電子元件,它們排列成一個圓圈。每個電子元件有一操作 電壓。如果一個元件的左右相鄰元件操作電壓之差不大於C,則這個元件是穩定的。
存在不穩定元件的電路都很危險,因為這是會爆炸的。
為安全起見,瓊斯博士設計了一個沒有不穩定元件的環廻電路。很可惜他遺失了設計 圖。作為瓊斯博士的助手,你希望幫助他把設計還原。
給出所有電子元件的操作電壓,請幫他還原設計,使得還原後電路沒有不穩定元件。
如果有多於一種設計,你可以輸出任意一個。我們保證答案必定存在。
輸入
第一行有兩個整數N,C
第二行有N個整數Vi,第i個元件的操作電壓。
輸出
在一行中輸出N個整數,順時針方向描述該穩定電路中元件的操作電壓。你可以在任 何一個位開始。
樣例輸入
6 2
3 1 3 4 2 1
樣例輸出
1 4 1 2 3 3
說明
這是樣例輸出的穩定設計。
約束條件
對於第一組佔25%的數據:
N10
1 Vi 3
對於第二組佔25%的數據:
N10
1 Vi 1000
對於第三組佔25%的數據:
N1000
1 Vi 3
對於第四組佔25%的數據:
N1000
1 Vi 1000