约瑟夫问题 太过爱你忘了你带给我的痛 2022-08-10 17:55 133阅读 0赞 约瑟夫问题如下: n个人围成一圈,从1号开始报数,报到m就退出,剩下的人从下一个人开始继续报数。。。问最后剩下的是谁?也可问每个人的死亡顺序. 这一题在数据量比较小的情况下,可以采用模拟的方法解决。代码如下: <span style="font-size:10px;">#include<cstdio> #include<cstring> int p[10000]; int main() { int n,k; freopen("1.txt","w",stdout); while (scanf("%d %d",&n,&k)==1) { int i,count=1,sign=1,cal=0; memset(p,0,sizeof(p)); while (sign) { sign=0; for (i=1;i<=n;i++) { if (p[i]==0) { ++cal; if (!sign)sign=1; if (cal==k) { coun=0; p[i]=count++; } } } } for (i=1;i<=n;i++) printf("%d\n",p[i]); //printf("\n"); } return 0; }</span> 如果问题是让你死亡顺序输出人员编号,可直接输出,也可用map 容器替代数组解决。这同样可以用链表解决,不过个人感觉链表好像有点麻烦..... 当然在数据量较大后,这种方法就不在适用,一是储存空间问题,二是时间问题。此代码的最糟糕情况复杂度为n^2级别。 URAL 1521 [http://acm.timus.ru/problem.aspx?space=1&num=1521][http_acm.timus.ru_problem.aspx_space_1_num_1521] 就是用模拟会挂掉的题目,于是只能优化,采用线段树的方法解决。 具体方法参见[http://blog.csdn.net/lilongherolilong/article/details/6614430][http_blog.csdn.net_lilongherolilong_article_details_6614430] [http_acm.timus.ru_problem.aspx_space_1_num_1521]: http://acm.timus.ru/problem.aspx?space=1&num=1521 [http_blog.csdn.net_lilongherolilong_article_details_6614430]: http://blog.csdn.net/lilongherolilong/article/details/6614430
相关 约瑟夫问题 约瑟夫问题 作者:Ackarlix 这是一个非常经典的问题:n个骑士编号1,2,...,n,围坐在圆桌旁,编号为k的骑士从1开始报数,报到m的骑士出列,然后下一个位置再从1 刺骨的言语ヽ痛彻心扉/ 2022年09月19日 13:29/ 0 赞/ 185 阅读
相关 约瑟夫问题 约瑟夫问题如下: n个人围成一圈,从1号开始报数,报到m就退出,剩下的人从下一个人开始继续报数。。。问最后剩下的是谁?也可问每个人的死亡顺序. 这一题在数据量比较小的 太过爱你忘了你带给我的痛/ 2022年08月10日 17:55/ 0 赞/ 134 阅读
相关 约瑟夫问题 约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然 后重新开始报数,问最后自杀的人是谁? ![Center][] 第一种方法:循环思想 待我称王封你为后i/ 2022年08月08日 00:39/ 0 赞/ 168 阅读
相关 约瑟夫问题 适合队列初学者 \include<queue> //队列 头文件 queue<int>q; //定义队列q,I ゝ一世哀愁。/ 2022年08月04日 04:10/ 0 赞/ 163 阅读
相关 约瑟夫问题 Problem Description n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被 £神魔★判官ぃ/ 2022年07月14日 12:44/ 0 赞/ 166 阅读
相关 约瑟夫问题 约瑟夫问题 Time Limit: 1000MS Memory Limit: 65536KB [Submit][] [ Statis 分手后的思念是犯贱/ 2022年06月18日 05:24/ 0 赞/ 165 阅读
相关 约瑟夫问题 <table> <tbody> <tr> <td>成绩</td> <td>10</td> <td>开启时间</td> <td>2017 ╰半夏微凉°/ 2022年06月02日 08:57/ 0 赞/ 256 阅读
相关 约瑟夫问题 1.知识点:循环链表 2.题意:n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,请输出最后一个人的编号 3.注意事项: 心已赠人/ 2022年05月30日 04:46/ 0 赞/ 156 阅读
相关 约瑟夫问题 Problem Description n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人 我就是我/ 2022年05月16日 06:06/ 0 赞/ 170 阅读
相关 约瑟夫问题 约瑟夫问题 ![在这里插入图片描述][20181114211743434.jpg] 题目描述: 开始有5个人围成圆形,从0号开始,数2个人,谁被数到就 灰太狼/ 2022年04月16日 00:46/ 0 赞/ 182 阅读
还没有评论,来说两句吧...