1 #include 2 #include 3 #include 4 using namespace std; 5 6 int a[20000]; 7 8 bool f(int k,int m) 9 {10 int s=0,e=k-1;11 for(int i=2*k; i>k; i--)12 {13 int k1=(m-1)%i;14 if(k1>=s&&k1<=e)15 {16 return false;17 }18 s=((s-m)%i+i)%i;1...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-04-12 19:51:00
                            
                                23阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            #include <iostream> //约瑟夫环using namespace std;int res[14];bool Joseph(int k,int m){ int len=2*k,i=0; while(len>k) { i=(i+m-1)%len; //i是被踢出的数的下标 if(i<k)return 0; //因为前k个都不能先选出来,所以前k个数的下标一直未变,只要i<k说明前k个数之一被踢出//这样就不用把选中的数从数组中删除,并把每次删除的数与k进行比较,现在直接把坐标与k进行比较即可 len--; } return 1;}int main()            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2011-07-20 22:28:00
                            
                                50阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            JosephTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2094Accepted Submission(s): 1273Problem Desc...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-01-12 18:03:00
                            
                                74阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            http://poj.org/problem?id=1012 题意:约瑟夫问题。前k个为好人,后k个为坏人,求最小m值,使得所有的坏人在第一个好人死前全部死完。 思路:首先引入一下约瑟夫环的递推公式: 设有n个人(0,...,n-1),数m,则第i轮出局的人为f(i)=(f(i-1)+m-1)%(n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-01-23 10:10:00
                            
                                85阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            JosephTime Limit: 1000MSMemory Limit: 10000KTotal Submissions: 53862Accepted: 20551DescriptionThe Joseph's problem is notoriously known. For those who are not familiar with the ori            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-05-23 10:06:00
                            
                                419阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            打表水过:#include using namespace std; int n; long long a[20] = {0,2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881,0}; int main() { while(cin>>n && n!=0){ cout<<a[n]<<endl; } return 0; }            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-01-15 15:29:00
                            
                                18阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            直接模拟出会严重超时,反正只有几个数,打个表就行了,int x[] = { 2,amespace s            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-27 18:40:28
                            
                                41阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            JosephTime Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other)Total Submission(s) : 0 Accepted Submission(s) : 0Problem DescriptionThe Joseph's problem is notoriously known. For those who are not familiar with the original problem: from among n people, numbered 1, 2, . . .,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2013-04-22 11:17:00
                            
                                319阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            题目传送门 1 /* 2 数学:约瑟夫环问题的变形,首先定义f[i]表示剩下i个人时,最后一个选出的人,有个公式:f[i] = (f[i-1] + m) % i 3 f[1] = 0(编号从0开始),那么类似最后一个数的求法,先找到剩2个人和剩3个人时,最后的编号,然后跟着最...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-08-08 15:17:00
                            
                                383阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            #include<stdio.h>voidmain(){intarr[100];inti=0,interval=0,qty=0,count=0,count1=0;//count数未出局的,count1数出局的printf("请输入人数和间隔(+1):");//间隔1,interval=2,间隔2,interval=3,依次类推。scanf("%d%d&qu            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2018-03-17 13:47:42
                            
                                938阅读
                            
                                                        
                                点赞
                            
                                                                                    
                                1评论
                            
                                                 
                 
                
                             
         
            
            
            
            Joseph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2240 Accepted Submission(s): 1361 Problem            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-03-28 17:34:00
                            
                                74阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            https://vjudge.net/problem/UVA-1363 n 题意:求 Σ k%i i=1 除法分块 如果 k/i==k/(i+1)=p 那么 k%(i+1)=k-(i+1)*p= k-i*p-p = k%i-p 所以 商相同时,余数为等差数列 我不知道为什么交到vjudge一直WA,            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-05 13:39:46
                            
                                119阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Joseph Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 47657 Accepted: 17949 Description The Joseph's problem is notoriously known. For tho            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-02-18 16:25:00
                            
                                178阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            //约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数, //数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依次规律重复下去,直到圆 //桌周围的人全部出列。 //Java源程序如下 package Joseph_Circle;            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-08 17:04:12
                            
                                141阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Joseph            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-02-17 09:24:35
                            
                                68阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            双向链表实现:* index.php<?phpfunction __autoload($className) {    include dirname(__FILE__).'/'.$className.'.php';}echo DblLinkedListImpl::solution(10, 3).PHP_EOL;echo RecursiveImpl::joseph(...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-08-13 01:06:54
                            
                                143阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            JosephTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1811    Accepted Submission(s): 1113Problem DescriptionThe Joseph's problem is            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-04-24 02:45:26
                            
                                81阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            题意:给定 n,k,求 while(i <=n) k % i的和。 析:很明显是一个数论题,写几个样例你会发现规律,假设 p = k / i.那么k mod i = k - p*i,如果 k / (i+1) 也是p,那么就能得到 : k mod (i+1) = k - p*(i+1) = k mod            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-11-09 14:40:00
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            数学问题 余数 等差序列
有趣            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-09-28 15:03:00
                            
                                107阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            UVA305 - Joseph(数论 + 打表)题目链接题目大意:约瑟夫环问题:n个人围成一圈,每次都淘汰第m个人,问最后一个幸存下来的人的编号。这题的意思有点不一样,它规定前面的k个人是好人,后面的k个人是坏人(2 ∗ k形成环)。问最小的m是多少,可以先把后面的k个坏人淘汰再淘汰好人。解题思路:...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2014-11-08 21:21:00
                            
                                75阅读
                            
                                                                                    
                                2评论