2515 2014年中山市选拔赛 投票
2017-04-01 19:10
169 查看
题目
题解
代码
给出m个人的投票情况,你的任务是统计投票情况,然后按照获得投票数从高到低将候选人排序,如果获得的投票数相同,则按照候选人的输入顺序从小到大排序。
四舍五入代码:
trunc((x*100)+0.5)/100
题解
代码
题目
有n个候选人要竞选主席,有m个人要投票。每个人只能投一票,如果某个人投了超过一票或者不投票,那么这个人的投票将视为非法。给出m个人的投票情况,你的任务是统计投票情况,然后按照获得投票数从高到低将候选人排序,如果获得的投票数相同,则按照候选人的输入顺序从小到大排序。
题解
模拟,然后排序四舍五入代码:
trunc((x*100)+0.5)/100
代码
var n,m,i,j,k:longint; a,b:array[0..10]of longint; c:array[1..10]of string; s:string; procedure qsort(l,r:longint); var i,j,key,key2,k,t:longint; begin if l>=r then exit; i:=l;j:=r; k:=l+random(r-l+1); key:=a[k]; key2:=b[k]; repeat while (a[i]>key)or((a[i]=key)and(b[i]<key2))and(i<r) do inc(i); while (a[j]<key)or((a[j]=key)and(b[j]>key2))and(j>l) do dec(j); if i<=j then begin t:=a[i];a[i]:=a[j];a[j]:=t; t:=b[i];b[i]:=b[j];b[j]:=t; inc(i);dec(j); end; until i>j; qsort(i,r); qsort(l,j); end; begin readln(n,m); for i:=1 to n do begin readln(c[i]); b[i]:=i; end; for i:=1 to m do begin readln(s); j:=pos('X',s); if j=0 then begin inc(a[0]);continue;end; delete(s,j,1); if pos('X',s)=0 then inc(a[j]) else inc(a[0]); end; randomize; qsort(1,n); for i:=1 to n do writeln(c[b[i]],' ',(trunc(((a[i]/m)*10000)+0.5)/100):0:2,'%'); writeln('Invalid ',(trunc(((a[0]/m)*10000)+0.5)/100):0:2,'%'); end.
相关文章推荐
- SSL P2515 2014年中山市选拔赛 投票
- 2014年中山市选拔赛 投票
- 2014年广东省青少年信息学竞赛中山市选拔赛 投票
- 2516 2014年中山市选拔赛 dwarf tower
- SSL P2516 2014年中山市选拔赛 dwarf tower
- 2014年中山市选拔赛 dwarf tower
- SSL2520 2014年汕头市选拔赛普级组 小球(math)
- SSL 2521 2014年汕头市选拔赛普级组 数数
- 【中山市选2014】投票
- 总结(【中山市选2014】投票 【中山市选2014】dwarf tower 【中山市选2014】图 【NOIP2013提高组day2】华容道)
- 2014年汕头市选拔赛普级组 数数
- CSU-ACM2014年校队选拔赛指导赛解题报告
- 东莞市2014年市队选拔赛 分组 构造二分图最小覆盖方案
- 2014年广州市信息学尖子选拔赛 第一题
- 2014年第四届“华为杯”南邮大学生程序设计竞赛之选拔赛 D演唱顺序问题
- SSL2522 2014年汕头市选拔赛普级组 约数(线性筛素数)
- 一款简单的基于Web的投票工具(PHP+SQLite 实现)
- 1934: [Shoi2007]Vote 善意的投票
- 又一年的成长-2014年总结
- 2014年年终总结