洛谷題解 p1042 桌球
題目背景
國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動桌球運動在全球的普及。其中11分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了桌球研究工作,意圖弄明白11分制和
21分制對選手的不同影響。在開展他的研究之前,他首先需要對他多年比賽的統計資料進行一些分析,所以需要你的幫忙。
題目描述
華華通過以下方式進行分析,首先將比賽每個球的勝負列成一張表,然後分別計算在11分制和21分制下,雙方的比賽結果(截至記錄末尾)。
比如現在有這麼乙份記錄,(其中w表示華華獲得一分,l表示華華對手獲得一分):
wwwwwwwwwwwwwwwwwwwwwwlw
在11分制下,此時比賽的結果是華華第一局11比0獲勝,第二局11比0獲勝,正在進行第三局,當前比分1比1。而在21分制下,此時比賽結果是華華第一局21比0獲勝,正在進行第二局,比分2比1。如果一局比賽剛開始,則此時比分為0比0。直到分差大於或者等於2,才一局結束。
你的程式就是要對於一系列比賽資訊的輸入(wlwlwl形式),輸出正確的結果。
輸入格式
每個輸入檔案包含若干行字串,字串有大寫的w、l和e組成。其中e表示比賽資訊結束,程式應該忽略e之後的所有內容。
輸出格式
輸出由兩部分組成,每部分有若干行,每一行對應一局比賽的比分(按比賽資訊輸入順序)。其中第一部分是11分制下的結果,第二部分是21分制下的結果,兩部分之間由乙個空行分隔。
輸入輸出樣例
輸入 #1
wwwwwwwwwwwwwwwwwwww
wwlwe
輸出 #1
11:0
11:0
1:121:0
2:1說明/提示
每行至多25個字母,最多有2500行
以下為純c語言題解。題目要求將輸入的字串按照11分制和21分制擷取,每當有大於11或21並且兩人的分數差大於等於2,便結束一局,想到開闢兩個二維陣列,分別記錄11、21分制下的情況,具體**以及思路如下:
#include
#include
//包含了絕對值函式
//下面初步估計了陣列需要開的大小
int list1[
6000][
2];int list2[
3000][
2];int
main()
else
if(ch==
'l')
//第二個人贏一回合,記錄在[*][1]處
//11分制的情況下:
if(list1[k1][0
]>=
11||list1[k1][1
]>=11)
//21分制的情況下:if(
(list2[k2][0
]>=21)
||(list2[k2][1
]>=21)
)}//最後按要求輸出即可
for(i=
0;i<=k1;i++
)printf
("%d:%d\n"
,list1[i][0
],list1[i][1
]);printf
("\n");
//別忘記換行
for(i=
0;i<=k2;i++
)printf
("%d:%d\n"
,list2[i][0
],list2[i][1
]);return0;
}
洛谷 P1042 桌球 題解
演算法 模擬 此題說實在話細節上的問題還是比較多的,對得起 pj 的難度。細節1 在判斷一場比賽是否結束時,如果是 11 10 的比分,比賽還要繼續,只有到雙方分差大於 2 分且至少有一方得到了大於等於 11 分的成績,一場比賽才可以結束 假設在 11 分制下 細節2 在輸出時,如果一局比賽的比分為...
洛谷題解P1042 桌球
原題傳送門 thinking 看到這麼冗長的題面 這道題是一道純模擬題,主要來看思路 思路也很簡單 開乙個 win i 陣列,來記錄 player 1 和 player 2 的勝場數 for int i 1 cin str str e i 在統計時,分為11分和21分兩個部分來操作 步驟基本一致。c...
洛谷 桌球(P1042)
國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動桌球運動在全球的普及。其中11分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了桌球研究工作,意圖弄明白11分制和21分制對選手的不同影響。在開展他的研究之前,他首先需要對他多年比賽...