【zoj】约瑟夫环相关- system overload

xiaoxiao2021-02-28  103

#include <iostream> #include <cstring> using namespace std; int v[150]; int nextbuild[150]; int main(){ int n; while(cin>>n && n>=3 && n<150){ for(int i=1;i<n+1;i++){ if(i==n){ nextbuild[i]=1; } else{ nextbuild[i]=i+1; } }//chushihua int m=1; bool find=false; while(!find){ m++; int num;//剩余的大楼数 memset(v,1,sizeof(v)); int x=1; int nextcut,jump; v[1]=0; num =n-1;//关掉1 while(num>1){ nextcut=x; jump=0; while(jump<m){ nextcut=nextbuild[nextcut]; if(v[nextcut]) {jump++;} } v[nextcut]=0; num--; x=nextcut; if(x==2 && num!=1) {break;} } if(v[2]&& num==1) find=true; } cout<<m<<endl; } }
转载请注明原文地址: https://www.6miu.com/read-63613.html

最新回复(0)