题目描述:
给出一个长度是n的字符串环,每次搁k个加入字符串中对应位置的字母序的下一个字母,执行m次,问最后一次插入的是什么字母。
大致思路:
正着想的话只能用模拟的方法解决,但是m有10^9这么大,而把问题倒过来想一下的话,那就变成了给出一个n+m的字符串每次搁k个字符删掉一个,最后剩下一个长度为n的字符串,问起始位置是什么字母。这样的话就变成了约瑟夫问题,约瑟夫环问题可以在不用考虑内容的...
分类:
其他好文 时间:
2014-12-10 22:56:50
阅读次数:
225
php里面解决约瑟夫环还是比较方面的,但是下面的方法太费空间m = $m; $this->n = $n; } public function getKing(){ $mokeys = range(1, $this->n); $tmp = 0; while(count($mokeys)>1)...
分类:
Web程序 时间:
2014-12-08 20:58:18
阅读次数:
147
题目大意:题意很明确,就是约瑟夫环。不过从第W个位置开始计数1,数S个
位置,然后出环,输出。
思路:用STL里边的string存放小孩的名字。用list双向链表模拟约瑟夫环。
注意:
string里边clear();用来清除所有字符。
list里push_back(i);用来将编号i放入list
begin();指向第一个元素的位置
end();指向最后一个元素后边的位置
list::iterator it;迭代器用来指向报数编号。
find(first,last,value);用来在区间[fi...
分类:
其他好文 时间:
2014-12-06 18:13:16
阅读次数:
237
据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到所...
分类:
编程语言 时间:
2014-12-04 19:30:40
阅读次数:
173
我的工程包括:struct.h create.c next.c main.cstruct.h#ifndef _STRUCT_H_#define _STRUCT_H_#include #include #include struct person{ int r; int s; ...
分类:
其他好文 时间:
2014-12-02 20:44:24
阅读次数:
226
/*问题描述:n个人(编号0~(n1-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。
我们知道第一个人(编号一定是m%n-1) 出列之后,剩下的n1-1个人组成了一个新的约瑟夫环(以编号为k=m%n1的人开始):
k k+1 k+2 ... n1-2, n1-1, 0, 1, 2, ... k-2
并且从k开始报0。
现在我们把他们的...
分类:
其他好文 时间:
2014-12-02 10:40:18
阅读次数:
165
题目:约瑟夫环变形,每次第k个出去后,他后面的第k个人站到他的位置,然后从这个位置继续;
现在你的编号,是1号,问从几号开始你回剩到最后。
分析:数论,模拟。直接模拟计算即可。
设从x位置开始则,最后剩下的人是s(编号0~n-1)有,你的新编号为m-x+1 = s,则x = m-s+1。
说明:看错题了,输出从1开始数的答案,WA了2次。...
分类:
其他好文 时间:
2014-12-01 17:38:10
阅读次数:
219
1) {if ($i % $m != 0) {$arr[] = $arr[$i-1]; //判断区//print_r($arr);}unset($arr[$i-1]);$i++;}return $arr;}echo '';$arr = pickKing(3, 3);print_r($arr);ec....
分类:
其他好文 时间:
2014-11-28 06:14:45
阅读次数:
149
1 ////////////////////////////////////////////////////////////////////////////// 2 // SqQueue.cpp 3 // 4 // author:Leetao 5 ////////////////////...
分类:
其他好文 时间:
2014-11-23 22:57:40
阅读次数:
590
1 package day_2; 2 3 import java.util.Scanner; 4 5 /** 6 * @author Administrator 7 * 约瑟夫环问题: 设编号为 1,2,3,....n的N个人围坐一圈,约定编号为k(1=n) return ;4...
分类:
编程语言 时间:
2014-11-19 11:58:07
阅读次数:
177