亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

HDOJ 1443 約瑟夫環的最新應用分析詳解

2020-01-26 16:09:33
字體:
來源:轉載
供稿:網友
k個男生和k個女生站成一列,前面k個是男生,后面k個是女生,從第一個男生開始報數,報到隊列最后一個同學,循環到隊首繼續報,并且如果一個同學報到的數是m,這個同學就出列,然后后面的同學繼續從1開始報數,現在求一個數m,使k個女生全部出列,而男生沒有出列。

輸入:男生女生的個數k(男生女生人數相等都為k,輸出:m值
例: 輸入:2,輸出:7
輸入:4,輸出:30

本題是約瑟夫環變形 先引入Joseph遞推公式,設有n個人(0,...,n-1),數m,則第i輪出局的人為f(i)=(f(i-1)+m-1)%(n-i+1),f(0)=0; f(i) 表示當前子序列中要退出的那個人(當前序列編號為0~(n-i));
拿個例子說:K=4,M=30;
復制代碼 代碼如下:

f(0)=0;
      f(1)=(f(0)+30-1)%8=5; 序列(0,1,2,3,4,5,6,7)中的5
      f(2)=(f(1)+30-1)%7=6; 序列(0,1,2,3,4,6,7)中的7
      f(3)=(f(2)+30-1)%6=5; 序列(0,1,2,3,4,6)中的6
      f(4)=(f(3)+30-1)%5=4; 序列(0,1,2,3,4)中的4
      ........

依據題意,前K個退出的人必定是后K個人,所以只要前k輪中只要有一次f(i)<k則此m不符合題意。
注意:
本題有幾點需要注意,否則很容易超時;
第一點、運用公式j=(j+m-1)%(n-i),推導出下一個出現的元素在第幾號位置,如果j<k的話,不符合題意。
第二點、就是m,當只剩下k+1個數的時候,則上一個消失的數一定是在目前僅剩的bad左邊或者是右邊,所以m%(k+1)==0或者1
有了這兩個條件,可以加快程序的速度。。。
完整的實現代碼如下:
復制代碼 代碼如下:

#include "stdio.h"
#include "stdlib.h"
int x[15];
/*
運用公式j=(j+m-1)%(len-i);推導出下一個出現的元素在第幾號位置,如果j<k的話,不符合題意。
若有7個人,報到3的人依次出列
第一次 j=(j+m-1)%(len-i)=(0+3-1)%(7-0)=2   下標為2的3出列   新序列為  1 2 4 5 6 7
第二次 j=(j+m-1)%(len-i)=(2+3-1)%(7-1)=4   下標為4的6出列   新序列為  1 2 4 5 7
第三次 j=(j+m-1)%(len-i)=(4+3-1)%(7-2)=1   下標為1的2出列   新序列為  1 4 5 7
第四次 j=(j+m-1)%(len-i)=(1+3-1)%(7-3)=3   下標為3的7出列   新序列為  1 4 5
第五次 j=(j+m-1)%(len-i)=(3+3-1)%(7-4)=2   下標為2的5出列   新序列為  1 4
第六次 j=(j+m-1)%(len-i)=(2+3-1)%(7-5)=0   下標為0的1出列   新序列為  4
第七次 j=(j+m-1)%(len-i)=(0+3-1)%(7-6)=0   下標為0的4出列   新序列為空,至此,所有人已經全部出列,出列的順序為:3 6 2 7 5 1 4
*/
int test(int k,int m)
{
 int i,j=0,len=k*2;
 for(i=0;i<k;i++)
 {
  j=(j+m-1)%(len-i);    //約瑟夫環公式
  if(j<k)
   return 0;     //遇到前k輪中有小于k的直接返回0
 }
 return 1;
}
/*
接下來說說m的取值范圍:我們考察一下只剩下k+1個人時候情況,即壞人還有一個未被處決,
那么在這一輪中結束位置必定在最后一個壞人,那么開始位置在哪呢?這就需要找K+2個人的結束位置,
然而K+2個人的結束位置必定是第K+2個人或者第K+1個人,這樣就出現兩種順序情況:GGGG.....GGGXB 或  GGGG......GGGBX (X表示有K+2個人的那一輪退出的人)所以有K+1個人的那一輪的開始位置有兩種可能即最后一個位置或K+1的那個位置,限定m有兩種可能:
GGGG......GGGBX 若K+2個人的結束位置在最后一個(第K+2個),則m%(k+1)==0
GGGG......GGGXB 若K+2個人的結束位置在倒數第二個(第K+1個),則m%(k+1)==1
*/
void Joseph(void)
{
 int m,k;
 for(k=1;k<15;k++)
 {
  m=k+1;
  while(1)
  {
   if(test(k,m))     // m%(k+1)==0的情況
   {
    x[k]=m;
    break;
   }
   if(test(k,m+1))     // m%(k+1)==1的情況
   {
    x[k]=m+1;
    break;
   }
   m+=k+1;
  }
 }
}
int main(void)
{
    int k;
 Joseph();
 while(scanf("%d",&k),k)
  printf("%d/n",x[k]);
 system("pause");
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线拍揄自揄视频不卡99| 国内精品在线一区| 欧美成人精品一区二区| 亚洲欧美成人网| 欧美一区在线直播| 91免费精品视频| 68精品久久久久久欧美| 欧美wwwwww| 97超视频免费观看| 国产精品久久久久影院日本| 久久99久国产精品黄毛片入口| 国产精品偷伦免费视频观看的| 国产精品18久久久久久首页狼| 精品国偷自产在线视频99| 日韩综合中文字幕| 国产精品久久久久7777婷婷| 欧洲永久精品大片ww免费漫画| 欧美激情日韩图片| 欧美视频中文字幕在线| 亚洲石原莉奈一区二区在线观看| 中文字幕精品视频| 亚洲高清av在线| 精品女厕一区二区三区| 久久久久久久久久久亚洲| 日韩一区二区福利| 日本高清不卡在线| 2019中文字幕在线观看| 亚洲另类欧美自拍| 久久天天躁狠狠躁夜夜爽蜜月| 97久久超碰福利国产精品…| 国产精品久久久久久久久久久新郎| 国产精品久久久久久婷婷天堂| 欧洲日本亚洲国产区| 91久久精品美女| 亚洲国内精品在线| 国产精品69精品一区二区三区| 国产精品综合久久久| 国产精品第一第二| 秋霞成人午夜鲁丝一区二区三区| 亚洲成人1234| 亚洲自拍偷拍区| 日韩在线观看免费全集电视剧网站| 亚洲视频一区二区三区| 亚洲深夜福利网站| 亚洲а∨天堂久久精品9966| 91av在线看| 九九久久综合网站| 日韩中文字幕在线精品| 国产精品美乳一区二区免费| 亚洲精品日韩欧美| 久久久99免费视频| 久久91亚洲人成电影网站| 成人av电影天堂| 亚洲字幕一区二区| 欧美精品久久久久久久免费观看| 亚洲综合日韩中文字幕v在线| 久久精品福利视频| 久久在线精品视频| 欧美黑人国产人伦爽爽爽| 欧美成人黑人xx视频免费观看| 欧美综合在线观看| 欧美天天综合色影久久精品| 欧美精品在线观看91| 欧美日韩免费区域视频在线观看| 精品日本美女福利在线观看| 蜜臀久久99精品久久久无需会员| 91免费电影网站| 国产精品草莓在线免费观看| 欧美激情亚洲一区| 国产情人节一区| 国产精品专区h在线观看| 亚洲第一偷拍网| 国产精品美女主播在线观看纯欲| 国产精品视频一| 久久精品99久久久香蕉| 在线播放日韩精品| 色综合久综合久久综合久鬼88| 成人免费看吃奶视频网站| 久久精品2019中文字幕| 亚洲电影免费观看| 久久亚洲精品中文字幕冲田杏梨| 日韩av一区二区在线观看| 亚洲影视中文字幕| 日韩精品免费在线视频| 日韩激情第一页| 97免费视频在线播放| 精品久久久一区二区| 亚洲黄色av女优在线观看| 国产精品精品一区二区三区午夜版| 亚洲视频一区二区三区| 久久久久免费精品国产| 日韩精品日韩在线观看| 日本久久久久久久久| 亚洲男人天堂2019| 久久久之久亚州精品露出| 综合网日日天干夜夜久久| 亚洲性猛交xxxxwww| 久久久久久美女| 91在线精品视频| 色伦专区97中文字幕| 国产精品久久久| 亚洲国产成人久久综合一区| 国产精品久久久久久av福利| 中文字幕精品久久| 免费91麻豆精品国产自产在线观看| 北条麻妃一区二区在线观看| 国产成人免费av电影| 亚洲人高潮女人毛茸茸| 亚洲国产另类 国产精品国产免费| 亚洲日韩中文字幕| 国产日韩欧美日韩| 国产精品久久久久久影视| 日韩精品在线看| 91精品国产91久久久久久吃药| 欧美做爰性生交视频| 日韩女优人人人人射在线视频| 精品香蕉一区二区三区| 在线播放日韩专区| 国产精品jvid在线观看蜜臀| 国产精品96久久久久久又黄又硬| 国产精品成人品| 夜夜嗨av一区二区三区四区| 国产精自产拍久久久久久蜜| 亚洲最新av在线网站| 亚洲视频在线观看免费| 最新的欧美黄色| 久久久亚洲网站| 日日骚久久av| 欧美在线不卡区| 午夜精品久久久久久久白皮肤| 国产亚洲精品久久久久久牛牛| 神马久久久久久| 欧美精品在线免费| 欧美精品videos另类日本| 欧美成人自拍视频| 18一19gay欧美视频网站| 久久噜噜噜精品国产亚洲综合| 日韩经典一区二区三区| 国产精品十八以下禁看| 国产丝袜视频一区| 精品国产一区二区三区四区在线观看| 福利微拍一区二区| 91九色国产在线| 国产香蕉一区二区三区在线视频| 亚洲成色777777在线观看影院| 欧美精品xxx| 91系列在线播放| 亚洲人成电影网站| 日韩经典中文字幕在线观看| 国产精品亚洲视频在线观看| 亚洲欧美日韩国产精品| 日韩av在线影院| 亚洲激情视频在线观看| 在线电影欧美日韩一区二区私密| 亚洲第一页中文字幕| 欧美精品在线第一页| 国产欧美日韩亚洲精品| 91精品国产综合久久香蕉的用户体验| 在线a欧美视频| 亚洲精品国产福利| 欧美日韩免费区域视频在线观看| 九色91av视频| 在线电影av不卡网址| 国产91精品久久久久|