hdu 1148 Rock-Paper-Scissors Tournament
来源:互联网 发布:淘宝上代接信用卡电话 编辑:程序博客网 时间:2024/05/22 15:35
题目地址:
http://acm.hdu.edu.cn/showproblem.php?pid=1148
题目描述:
Rock-Paper-Scissors Tournament
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1462 Accepted Submission(s): 465
Problem Description
Rock-Paper-Scissors is game for two players, A and B, who each choose, independently of the other, one of rock, paper, or scissors. A player chosing paper wins over a player chosing rock; a player chosing scissors wins over a player chosing paper; a player chosing rock wins over a player chosing scissors. A player chosing the same thing as the other player neither wins nor loses.
A tournament has been organized in which each of n players plays k rock-scissors-paper games with each of the other players - k games in total. Your job is to compute the win average for each player, defined as w / (w + l) where w is the number of games won, and l is the number of games lost, by the player.
A tournament has been organized in which each of n players plays k rock-scissors-paper games with each of the other players - k games in total. Your job is to compute the win average for each player, defined as w / (w + l) where w is the number of games won, and l is the number of games lost, by the player.
Input
Input consists of several test cases. The first line of input for each case contains 1 ≤ n ≤ 100 1 ≤ k ≤ 100 as defined above. For each game, a line follows containing p1, m1, p2, m2. 1 ≤ p1 ≤ n and 1 ≤ p2 ≤ n are distinct integers identifying two players; m1 and m2 are their respective moves ("rock", "scissors", or "paper"). A line containing 0 follows the last test case.
Output
Output one line each for player 1, player 2, and so on, through player n, giving the player's win average rounded to three decimal places. If the win average is undefined, output "-". Output an empty line between cases.
Sample Input
2 41 rock 2 paper1 scissors 2 paper1 rock 2 rock2 rock 1 scissors2 11 rock 2 paper0
Sample Output
0.3330.6670.0001.000
题意:
猜拳算平均概率,平均概率=W / ( W + L )
题解:
算出每个人的W和L,注意空行是每个样例之间有,且最后一个样例不能有空行不然会有PE; "-"的情况是 W==L==0
代码:
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<iostream>using namespace std;int n=0,k=0,cases=0;;//n people (begin with 1) k gamestypedef struct pe{ int w; int l; pe() { w=0; l=0; }}pe,* pelink;pe peos[100+5];//begin with 1int duel(char c1,char c2){ int val=c1-c2; switch((int)fabs(val)) { case 0: return(0); case 3: return(val); default: return(-val); }}int main(){ while(scanf("%d",&n)!=EOF&&n>0) { cases++; memset(peos,0,sizeof(peos)); scanf("%d",&k); for(int i=1;i<=k;i++) { char cs1[10],cs2[10]; int num1,num2; scanf("%d%s%d%s",&num1,cs1,&num2,cs2); int flag=duel(cs1[0],cs2[0]); if(flag>0) { peos[num1].w++; peos[num2].l++; } else if(flag<0) { peos[num1].l++; peos[num2].w++; } } if(cases>1)//PE: the empty line is between cases printf("\n"); for(int i=1;i<=n;i++) { if(peos[i].w+peos[i].l==0) { printf("-\n"); } else { printf("%.3lf\n",(double)peos[i].w/(peos[i].w+peos[i].l)); } } } return(0);}
0 0
- HDU 1148 Rock-Paper-Scissors Tournament
- hdu 1148 Rock-Paper-Scissors Tournament
- HDU:1148 Rock-Paper-Scissors Tournament
- HDU1148 Rock-Paper-Scissors Tournament
- hdoj 1148 Rock-Paper-Scissors Tournament(模拟题)
- poj 2654 Rock-Paper-Scissors Tournament
- POJ-2654-Rock-Paper-Scissors Tournament
- POJ 2654 Rock-Paper-Scissors Tournament(水~)
- hdu——Rock, Paper, Scissors
- hdu 2164 Rock, Paper, or Scissors?
- JAVA hdu 2164 Rock, Paper, or Scissors?
- HDOJ(HDU) 2164 Rock, Paper, or Scissors?
- Rock-Paper-Scissors
- 【poj2339】Rock, Scissors, Paper
- Rock, Scissors, Paper
- poj 2339 Rock, Scissors, Paper
- POJ 2339 Rock, Scissors, Paper
- poj 3917 Rock, Paper, Scissors
- spmh9x qgg41
- MFC 多线程 用户界面线程创建
- vrup1r gle48
- [CPP]以位流的方式从char数组中读取数据
- kmp算法的实现
- hdu 1148 Rock-Paper-Scissors Tournament
- hdu 4901 The Romantic Hero 2014 Multi-University Training Contest 4 E
- hdu 2563 统计问题 递推 (2 *-1,1 * -2)
- hdu 1431
- 取(2堆)石子游戏(威佐夫博弈)
- 分页pager-taglib使用指南
- HDU 1732——Push Box(BFS)
- hdu 1015
- UVa 213 Message Decoding(World Finals1991,字符串)