约瑟夫问题的升级版,每次出去的是前一个出去的人位置+手上的数字(正往前,负往后)。第i个出去的人拿的糖是i的约数的个数。求拿糖最多的人和他的糖果数。 这里用到了反素数的知识,在这直接打表 题目 AC代码: #include<stdio.h> #include<string.h> #define ls ...
分类:
其他好文 时间:
2018-05-24 18:13:31
阅读次数:
153
我们首先来看一下约瑟夫环问题: 给定m个人,m个人围成一圈,在给定一个数n,从m个人中的第一个人每第n个人便将其除去,求被最后一个出去的人的编号。 思路: 建立一个长度为m+1的数组,将其的内容初始化为0至m 我们设置变量i与j,i代表数组元素的下表,因为我设置的数组长度为m+1,所以数组下标就为每 ...
分类:
编程语言 时间:
2018-05-23 00:08:17
阅读次数:
202
题目链接: https://cn.vjudge.net/problem/POJ-2886 题目大意: N个人围成一圈第一个人跳出圈后会告诉你下一个谁跳出来跳出来的人(如果他手上拿的数为正数,从他左边数A个,反之,从他右边数A个) 跳出来的人所得到的糖果数量和他跳出的顺序有关 所得的糖果数为 (假设他 ...
分类:
其他好文 时间:
2018-05-12 02:46:04
阅读次数:
200
原创博文,转载请注明出处! # 题目 # 思路 本题即为典型的约瑟夫问题,通过递推公式解决。 第一行表示每个人的下标,现在要从11个人中删除报数为3的人,从图中可以可看出最后7是胜利者。分析其中的规律: 第一轮中,11个人中胜利者7的角标是6; 第二轮中,10个人中胜利者7的角标是3; 第三轮中,9... ...
分类:
编程语言 时间:
2018-05-09 22:46:33
阅读次数:
249
M个人围成一圈,从第一个开始报数,第N个将被杀掉,最后剩下一个,其余人都将被杀掉。例如M=10,M=3,被杀掉的顺序是:3,6,9,2,7,1,8,5,10,4. 使用单循环链表实现 API函数和单循环链表一样 main.c 宏定义M为10,N为3 运行结果: ...
分类:
其他好文 时间:
2018-04-26 01:26:58
阅读次数:
148
#include #include using namespace std; typedef struct node* list; struct node { int Item; list next; }; static void DisplayList(list head) { if (head-... ...
分类:
其他好文 时间:
2018-04-25 10:20:00
阅读次数:
159
本篇文章中所有数据结构都是后期整理的,如有问题欢迎指正,转载请注明出处http://www.cnblogs.com/a1982467767/p/8893553.html 约瑟夫环问题实现 实验程序: ...
分类:
其他好文 时间:
2018-04-20 22:06:57
阅读次数:
174
最近清明节,回去扫墓了,在回家之前就已经做好了1007-1010的题目。但是1011有点小难,之前虽然是搞懂了,想法也是有了,知道是一个数DP问题,但实际上并没有我想的那么简单。 HDOJ 1007 该题目咋一看蛮复杂的,我一开始还以为是约瑟夫环,后来仔细一看,觉得蛮简单,就是求出给定散点图中距离最 ...
分类:
其他好文 时间:
2018-04-06 22:33:25
阅读次数:
156