King's Game

 Accepts: 249
 Submissions: 671
 Time Limit: 2000/1000 MS (Java/Others)
 Memory Limit: 65536/65536 K (Java/Others)
问题描述
  1. 为了铭记历史,国王准备在阅兵的间隙玩约瑟夫游戏。它召来了 n(1\le n\le 5000)n(1n5000) 个士兵,逆时针围成一个圈,依次标号 1, 2, 3 ... n1,2,3...n
  2.  
  3. 第一轮第一个人从 11 开始报数,报到 11 就停止且报到 11 的这个人出局。
  4.  
  5. 第二轮从上一轮出局的人的下一个人开始从 11 报数,报到 22 就停止且报到 22 的这个人出局。
  6.  
  7. 第三轮从上一轮出局的人的下一个人开始从 11 报数,报到 33 就停止且报到 33 的这个人出局。
  8.  
  9. n - 1n1 轮从上一轮出局的人的下一个人开始从 11 报数,报到 n - 1n1 就停止且报到 n - 1n1 的这个人出局。
  10.  
  11. 最后剩余的人是幸存者,请问这个人的标号是多少?
输入描述
  1. 第一行一个整数表示测试组数:T(0 < T\le5000)T(0<T5000)
  2.  
  3. 每组数据占一行,包含一个整数 nn,表示 nn 个人围成一圈。
输出描述
  1. TT 行。对每组数据,输出幸存者的编号。
输入样例
  1. 2
  2. 2
  3. 3
输出样例
  1. 2
  2. 2
Hint
  1. 对于第一组数据,一开始报到 11 的人即标号为 11 的人退出,幸存者是 22 号。
  2.  
  3. 对于第二组数据,一开始报到 11 的人即标号 11 的人退出。接着 22 号报 1133 号报 22,报到 22 的人即 33 号退出。幸存者是 22 号。

  1. /*
  2. hdu 5643 BestCoder Round #75
  3.  
  4. 这个类似于约瑟夫环,只是第i次报i的人被干掉
  5. 简单粗暴点就是打表,另外一种就是递推
  6.  
  7. 我们要求的是n个人时最后存活的是谁f[n]
  8. 但是我们发现杀掉一个人之后从它的下一位开始重新编号
  9. 就成了求f[n-1]的解,所以考虑递推
  10. i+1 i i-1
  11. 0 1 2 3 4 5 6 7 -> 1 2 3 4 5 6 7 -> 1 3 4 5 6 7
  12. 0 1 2 3 4 5 6 5 0 1 2 3 4
  13. 对于第i次而言,我们要干掉第n-i+1个人,而且会从下一位重新编号
  14. 所以i->i+1时 每个数的编号相对增加了n-i+1 然后进行取模即可
  15. */
  16. #include <iostream>
  17. #include <cstdio>
  18. #include <cstdlib>
  19. #include <cstring>
  20. #include <algorithm>
  21. #include <cmath>
  22. #include <stack>
  23. #include <map>
  24. using namespace std;
  25. typedef long long ll;
  26. typedef long double ld;
  27. #define lson (i<<1)
  28. #define rson ((i<<1)|1)
  29. const int maxn = 5005;
  30. int dp[maxn];
  31. int main()
  32. {
  33. int T,m,n;
  34. scanf("%d",&T);
  35. while(T--)
  36. {
  37. dp[1] = 0;
  38. scanf("%d",&n);
  39. for(int i = 2; i <= n; i++)
  40. {
  41. dp[i] = (dp[i-1]+n-i+1)%i;
  42. }
  43. dp[n] += 1;
  44. printf("%d\n",dp[n]);
  45. }
  46. return 0;
  47. }

  

hdu 5643 BestCoder Round #75的更多相关文章

  1. hdu 5641 BestCoder Round #75

    King's Phone  Accepts: 310  Submissions: 2980  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

  2. BestCoder Round #75 1001 - King's Cake

    Problem Description It is the king's birthday before the military parade . The ministers prepared a ...

  3. hdu 5667 BestCoder Round #80 矩阵快速幂

    Sequence  Accepts: 59  Submissions: 650  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536 ...

  4. hdu 5640 King's Cake(BestCoder Round #75)

    King's Cake Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

  5. HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树

    zxa and leaf Problem Description zxa have an unrooted tree with n nodes, including (n−1) undirected ...

  6. HDU 5506 - BestCoder Round #60 - GT and set

    题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=641&pid=1003 题意 : 给N集 ...

  7. HDU 5505 - BestCoder Round #60 - GT and numbers

    题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=641&pid=1002 思路 : N有若 ...

  8. HDU 5496 - BestCoder Round #58 - Beauty of Sequence

      题目链接 : http://bestcoder.hdu.edu.cn/contests/contest_chineseproblem.php?cid=637&pid=1002 思路 : 考 ...

  9. ACM学习历程—BestCoder Round #75

    1001:King's Cake(数论) http://acm.hdu.edu.cn/showproblem.php?pid=5640 这题有点辗转相除的意思.基本没有什么坑点. 代码: #inclu ...

随机推荐

  1. django获取ip与数据重复性判定

    获取ip if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip_c = request.META['HTTP_X_FORWARDED_FOR'] el ...

  2. 用javascript做别踩白块游戏2

    这一次做一个好一点的,要求黑块自动下落,且速度逐渐加快 <!DOCTYPE html> <html> <head> <!-- 禁用缩放功能 --> &l ...

  3. Python3 re模块(正则表达式)

    一:什么是正则? 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. (在Python中)它内嵌在Python中,并通过r ...

  4. 大数据学习总结(7)we should...

    大数据场景一.各种标签查询 查询要素:人.事.物.单位 查询范围:A范围.B范围.... 查询结果:pic.name.data from 1.痛点:对所有文本皆有实时查询需求2.难点:传统SQL使用W ...

  5. 新概念英语(1-5)Nice to meet you.

    Is Chang-woo Chinese? Blake:Good morning. B:Good morning, Mr Blake. Blake:This is Miss Sophie Dupont ...

  6. ssh_maven的搭建之dao层的开发

    之前都是使用我们传统的方式进行引入jar包,现在我们使用maven进行管理依赖,这样,我们的jar就不需要我们进行管理,而且,我们的maven还可以进行项目构建,一个项目从编写源代码到编译,测试,运行 ...

  7. Nginx配置特定二级域名

    首先把先在域名设置页面把二级域名解析到服务器的公网IP上,这里假设是 bbs.domainname.com 然后编辑 /etc/nginx/sites-available/domain.com.con ...

  8. zoj 3981 Balloon Robot

    https://vjudge.net/problem/ZOJ-3981 题意: 有m个座位,其中n个队伍坐在这些位置上,一个队伍一个座位.当一个队A了题之后,他们们会得到气球,假设他们在a时刻A题,但 ...

  9. 非黑即白--谷歌OCR光学字符识别

    # coding=utf-8 #非黑即白--谷歌OCR光学字符识别 # 颜色的世界里,非黑即白.computer表示深信不疑. # 今天研究一下OCR光学识别庞大领域中的众多分支里的一个开源项目的一个 ...

  10. php过滤表单提交的html等危险代码

    表单提交如果安全做得不好就很容易因为这个表单提交导致网站被攻击了,下面我来分享两个常用的php过滤表单提交的危险代码的实例,各位有需要的朋友可参考. PHP过滤提交表单的html代码里可能有被利用引入 ...