SSL P2743 看电影
来源:互联网 发布:淘宝哪家鞋子质量好 编辑:程序博客网 时间:2024/06/03 19:39
题目大意:
N个人排成一圈,随机一个编号X,若编号为X还未踢出,则将这个人踢出,否则看编号为X % N + 1(即顺时针顺序下一个编号)的人是否存活,如果还未踢出则将他踢出,否则继续看编号(X + 1)% N +1的人,如果已被踢出看顺时针的下一个…………,以此类推,直到踢出一个人为止。重复上述操作,直到剩下K个人。
已知小S的编号是Id,问按照小S的方法来他有多少的概率可以不被踢出,成功得到看电影的机会。
题解:
这题,其实挺简单了,不用考虑ID,因为是概率,剩下I个人,淘汰的概率就是1/I,留下的概率就是i-1/i,然后直接把n-k轮留下的概率全部相乘化简就可以就可以了。
想到这一步以后,我们看数据,N那么大,乘那么多次,肯定会超时,然后我们发现,
形如 4/5*3/4*2/3这些,可以将分子跟分母相互化简,最后的答案就是K/N,所以我们就考虑以下几种情况:
①N-K>0,那么就是K/N,注意化简
②N-K=0,那么就是1/1,特判即可
③K=0,那么就是0/1,依然特判即可
这个时间复杂度就是O(1)啦!
var n,m,i:longint;begin readln(n,m,i); if m=0 then writeln('0/1') else begin for i:=2 to trunc(sqrt(n)) do if (m mod i=0) and (m>=i) then begin while (m mod i=0) and (n mod i=0) do begin m:=m div i; n:=n div i; end; end; if n=m then writeln('1/1') else writeln(m,'/',n); end;end.
阅读全文
0 0
- SSL P2743 看电影
- SSL P2743 数列
- 看电影
- 看电影
- 看电影
- 看电影
- 看电影
- 【BZOJ】【P2743】【HEOI2012】【采花】【离线+树状数组】
- 组织看电影
- 小时候看电影
- 明天看电影
- 看电影有感
- 看电影(movie)
- 读书看电影
- 看电影随笔
- 摇一摇看电影
- 【jzoj4745】【看电影】
- 看电影去
- Valid Parentheses--LeetCode
- Android Apk解析
- Word Amalgamation(STL库的使用 + next_permutation)
- ROS Service的使用_Python
- Innodb Cluster 入门(2) Mysql二进制日志
- SSL P2743 看电影
- 离散化-线段树-扫描线小结
- HDU 1258-Sum It Up(dfs)
- 【后缀数组】后缀排序
- android学习笔记(一)
- 《Linux程序设计》 -> 《Linux高级程序设计》 -> 《Unix环境高级编程》
- FM1702sl终于调通小结
- First Unique Number In Stream
- windows下nginx安装、配置与使用