作者landysh (landysh)
看板Prob_Solve
标题[问题] uva 10903 WA
时间Mon Nov 5 00:00:37 2018
大家好,
我最近写了uva的10903又再次不幸的获得了WA,
和过往一样丢了uDebug却每个测资都过,
想请问是否有我没注意到的细节?
题目:
https://goo.gl/8qXoA1
翻译大致如下:
剪刀石头布是个 2 个人玩的游戏,玩家各选剪刀、石头、布其中之ㄧ,剪刀赢布,布赢
石头,石头赢剪刀,一样就算平手。
现在总共有 n 个玩家,每个玩家要与其他人比赛 k 场,总共也就是 k*n*(n-1)/2 场比
赛,你的任务就是计算每个玩家的胜率,胜率的定义是 w/(w+l),w 是胜场数,l 是败场
数。
Input
输入含有多组测试资料,每组测试资料的第1列包含2个整数 n和 k( 1<= n,k <= 100)
,n, k如上面的定义,下面的 k*n*(n-1)/2 列,每一列代表一场比赛,包含了p1 ,m1,
p2, m2,1<= p1,p2 <= n (p1, p2 代表玩家号码,p1不会等於 p2),m1, m2各代表
p1, p2 出的拳 ("rock", "scissors",或 "paper")。
当 n=0 代表输入结束。请参考Sample Input。
Output
输出每个玩家的胜率(四舍五入到小数点下3位),1人1列,如果胜率无意义,输出 "-"
。测试资料间请空一列。
我的code:
https://pastebin.com/pKUx9PxL
想法就是依照不同玩家开array去存输赢次数以及有比出输赢的场次数
最後再依据这个来求出胜率
请教各位了,谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.240.160
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Prob_Solve/M.1541347244.A.93A.html
1F:推 cutekid: p1,p2 是 100的时候超出 index11/05 01:13
喔喔 修正了
不过这点修正後还是WA
※ 编辑: landysh (27.247.10.132), 11/05/2018 06:56:18
2F:推 cutekid: 测资里面好像有 n = 1 的情况!11/05 13:25
3F:→ cutekid: n = 1 时, p1,m1,p2,m2 好像不用读 ??11/05 13:26
4F:嘘 bigload1234: 你平手有放吗?11/05 17:30
5F:推 bigload1234: 按错 补推11/05 17:33
6F:→ landysh: n=1的情况我想一下11/05 19:36
7F:→ landysh: 题意就我理解胜率应该不用算平手吧11/05 19:36
8F:→ stucode: 平手不用算没错。我也觉得问题应该像 cutekid 大说的,11/06 00:12
9F:→ stucode: n = 1 时没有处理好。11/06 00:12
真的
n=1的情况处理好之後就AC了
谢谢大家的帮忙
※ 编辑: landysh (39.9.132.20), 11/06/2018 05:11:18