(乙)1018 錘子剪刀布 (20 分

2021-09-14 06:48:40 字數 1623 閱讀 4227

現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。

輸入格式:

輸入第 1 行給出正整數 n(≤10​5​​),即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲、乙雙方同時給出的的手勢。c代表「錘子」、j代表「剪刀」、b代表「布」,第 1 個字母代表甲方,第 2 個代表乙方,中間有 1 個空格。

輸出格式:

輸出第 1、2 行分別給出甲、乙的勝、平、負次數,數字間以 1 個空格分隔。第 3 行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有 1 個空格。如果解不唯一,則輸出按字母序最小的解。

輸入樣例:

10

c jj b

c bb b

b cc c

c bj b

b cj j

輸出樣例:

5 3 2

2 3 5

b b

給你乙個n ,後面有n組遊戲的手勢,讓你分別求出來這兩個人勝,平,負各有多少局,然後再計算出這兩個人用什麼手勢贏的局數最多;注意輸出格式;

就是一道簡單的模擬題,最近腦袋有點混沌,**寫完後自己定睛一看,什麼東西,看不懂;什麼思路,不知道;陣列存什麼東西,不清楚。。。。。。。

把每一種情況都模擬一下,用陣列記錄結果,一定要細心,不然容易把自己繞進去。。。。。淚目。。。。

只需要計算出來乙個人的勝,平,負,另乙個人和他相反;

#include#include#includeusing namespace std;

struct node

a[101000];

int n;

int q[4];//記錄第乙個人勝利的情況;q[1],q[2],q[3]分別代表用錘子,剪刀,布贏的次數;

int p[4];//記錄第二個人勝利的情況;p[1],p[2],p[3]分別代表用錘子,剪刀,布贏的次數;

int s[4];//記錄第乙個人的勝,平,負局的情況;s[1],s[2],s[3]分別代表勝,平,負局;

void solve1()//查詢第乙個人勝的次數最多的手勢;

if(q[2]>maxx)

if(flag==1)

printf("c ");

else if(flag==2)

printf("j ");

else if(flag==3)

printf("b ");

return ;

}void solve2()//查詢第二個人勝利次數最多的手勢;同上;

if(p[2]>maxx)

if(flag==1)

printf("c\n");

else if(flag==2)

printf("j\n");

else if(flag==3)

printf("b\n");

return ;

}int main()

return 0;

}

PAT乙1018 錘子剪刀布 20

題目在這裡 時間限制 100 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大...

1018 錘子剪刀布 (20 分)

填坑日記 本題我沒進坑哈哈哈哈 includeusing namespace std int main y 3 ej 3 ey 3 maxj,maxy cin n for i a b if a b b c 甲贏 else if a c b j 甲贏 else if a j b b 甲贏 else i...

1018 錘子剪刀布 (20 分

現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 10 5 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j代表 剪刀 b代表 布 第 1 個字母代表甲方,第 2 個代表乙方,中...