洛谷 桌球(P1042)

2021-10-07 17:11:59 字數 1507 閱讀 2359

國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動桌球運動在全球的普及。其中11分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了桌球研究工作,意圖弄明白11分制和21分制對選手的不同影響。在開展他的研究之前,他首先需要對他多年比賽的統計資料進行一些分析,所以需要你的幫忙。題目描述華華通過以下方式進行分析,首先將比賽每個球的勝負列成一張表,然後分別計算在11分制和21分制下,雙方的比賽結果(截至記錄末尾)。比如現在有這麼乙份記錄,(其中w表示華華獲得一分,l表示華華對手獲得一分):wwwwwwwwwwwwwwwwwwwwwwlw在1分制下,此時比賽的結果是華華第一局1比0獲勝,第二局11比0獲勝,正在進行第三局,當前比分1比1。而在21分制下,此時比賽結果是華華第一局21比0獲勝,正在進行第二局,比分2比1。如果一局比賽剛開始,則此時比分為0比0。直到分差大於或者等於2,才一局結束。你的程式就是要對於一系列比賽資訊的輸入(wl形式),輸出正確的結果。輸入格式每個輸入檔案包含若干行字串,字串有大寫的w、l和e組成。其中e表示比賽資訊結束,程式應該忽略e之後的所有內容。輸出格式輸出由兩部分組成,每部分有若干行,每一行對應一局比賽的比分(按比賽資訊輸入順序)。其中第一部分是11分制下的結果,第二部分是21分制下的結果,兩部分之間由乙個空行分隔。

輸入輸出樣例

輸入wwwwwwwwwwwwwwwwwwww

wwlwe

輸出11:0

11:0

1:121:0

2:1說明/提示每行至多25個字母,最多有2500行

#include

//這題首先e後面可能有資訊但是要忽略,其次在比分相差不到2時是繼續比賽的

using

namespace std;

//比如 11:12,在11分賽制下要繼續比下去

intmain()

int sum1=

0,sum2=0;

for(

int i=

0;s[i]

!='e'

;i++

)else

if(s[i]

=='l'

) count++;if

((sum1>=

11||sum2>=11)

&&(abs(sum1-sum2)

>=2)

)}

cout<":"

sum1=0;

sum2=0;

cout

int i=

0;s[i]

!='e'

;i++

)else

if(s[i]

=='l'

) count++;if

((sum1>=

21||sum2>=21)

&&(abs(sum1-sum2)

>=2)

)}cout<":"

return0;

}

洛谷P1042桌球

問題傳送門 題目本身並不難,主要是考慮許多種情況。思路 若華華或者對手首先到達了11或21,那麼就判斷是否分差大於2,大於2就輸出,不大於2就繼續往下做。最後輸出剩餘的分數,不多說,直接看 include using namespace std int a 2 char c string s int...

洛谷題解P1042 桌球

洛谷題解 p1042 桌球 題目背景 國際乒聯現在主席沙拉拉自從上任以來就立志於推行一系列改革,以推動桌球運動在全球的普及。其中11分制改革引起了很大的爭議,有一部分球員因為無法適應新規則只能選擇退役。華華就是其中一位,他退役之後走上了桌球研究工作,意圖弄明白11分制和 21分制對選手的不同影響。在...

洛谷 P1042 桌球 題解

演算法 模擬 此題說實在話細節上的問題還是比較多的,對得起 pj 的難度。細節1 在判斷一場比賽是否結束時,如果是 11 10 的比分,比賽還要繼續,只有到雙方分差大於 2 分且至少有一方得到了大於等於 11 分的成績,一場比賽才可以結束 假設在 11 分制下 細節2 在輸出時,如果一局比賽的比分為...