LightOJ - 1179 Josephus Problem(约瑟夫环)
生活随笔
收集整理的這篇文章主要介紹了
LightOJ - 1179 Josephus Problem(约瑟夫环)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目鏈接:https://vjudge.net/contest/28079#problem/G
題目大意:約瑟夫環問題,給你n和k(分別代表總人數和每次要數到k),求最后一個人的位置。
解題思路:因為n和k的范圍都較大所以不能直接模擬,要推導出規律f(n) = (f(n-1) + k) % n。
代碼:
1 #include<iostream> 2 #include<stdio.h> 3 using namespace std; 4 5 int main(){ 6 int T; 7 scanf("%d",&T); 8 int cas=0; 9 while(T--){ 10 int n,k; 11 scanf("%d%d",&n,&k); 12 int pos=0; 13 for(int i=2;i<=n;i++) 14 pos=(pos+k)%i; 15 printf("Case %d: %d\n",++cas,pos+1); 16 } 17 }?
轉載于:https://www.cnblogs.com/fu3638/p/7406364.html
總結
以上是生活随笔為你收集整理的LightOJ - 1179 Josephus Problem(约瑟夫环)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nvm-windows的安装配置
- 下一篇: 【数据算法】Java实现二叉树存储以及遍