ACM_约瑟夫环问题
yuanchuanshun
这个作者很懒,什么都没留下…
展开
-
pku1012==hdu1443约瑟夫环问题
<br />pku1012我写了个链表的暴力来直接打表发现只能打到k=9,到10就运行不了了;代码在下面,而网上这一篇http://blog.csdn.net/rongyongfeikai2/archive/2010/11/11/6001753.aspx写的打表居然可以,下面是我的草稿代码:<br />#include<stdio.h><br />#include<stdlib.h><br />struct Link{<br /> int num;<br /> bool used;<br />原创 2011-01-19 19:47:00 · 1745 阅读 · 0 评论 -
pku2244约瑟夫环问题
<br />【题意】<br />n个城市(标号1,2,....,n)轮流断网,先停1号城市,然后每m个城市断网,断了的就不用计入在内了。<br /> <br />【分析】<br />约瑟夫环杀人游戏的一个变种。<br />自己总算能用之前的公式套了。<br />我们已知的结论是:<br />f[i]表示i个人玩游戏报m退出最后胜利者的编号,最后的结果自然是f[n],递推公式:<br />f[1]=0;<br />f[i]=(f[i-1]+m)%i; (i>1) //注意这里%i,i表示当前算的数,计算f[原创 2011-01-19 20:58:00 · 1043 阅读 · 0 评论 -
pku1781约瑟夫环问题
<br />【题意】<br />典型的约瑟夫环杀人问题,N是给定的,M定为2,求最后胜利者,如N=5,则最后是3获胜。。。<br /> <br /> <br />开始写的超了时,也可以想到的,在自己编译器里都没有立刻出结果何况OJ里呢?代码如下:<br />#include<stdio.h><br />#include<string.h><br />int Joseph(int n){<br /> int i=2,a=0,b;<br /> while(i<=n){<br /> b=原创 2011-01-19 21:58:00 · 946 阅读 · 0 评论 -
pku3517约瑟夫环问题
<br />【题意】<br />典型约瑟夫环问题的变种,由杀人变成取石子,石子从1到n编号,先把m取掉(1<=m<=n),然后从m+1开始每k个石子取一个,问最后一个“胜利”的石子;<br /> <br />【分析】<br />这里m号石子先取掉,那么之后的循环不会再有m介入,所以我们只需要计算出剩下n-1个石子的最后胜者就可以。我们从m+1开始编号0,m+2编号1,。。。m-1编号n-2,用下面的Joseph()函数就可以计算出它们的最后胜者,返回结果要加1,因为编号从0开始,而我们题目数据计数从1开始,原创 2011-01-20 09:16:00 · 1214 阅读 · 0 评论 -
pku3750约瑟夫环问题
<br />【题意】有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。 【分析】简单的约瑟夫环问题,直接模拟即可,题目数据量很小; 【代码】/*3750 Accepted 172K 0MS C++ 649B 2011-01-22 11:07:31*/<br />#include<stdio.h><br />char name[65][18原创 2011-01-22 11:10:00 · 2126 阅读 · 0 评论