救濟金髮放 UVA 133
using namespace std;
int n,k,m,a[25];
int go(int p,int d,int t)
{
while(t--){
do{p = (p+d+n-1)%n+1;
}
while(a[p] == 0);
}
return p;
}
int main()
{
while(cin>>n>>k>>m && n){
for(int i = 1; i<=n;i++) a[i] = i;
int left = n;
int p1 = n,p2 = 1;
while(left){
p1 = go(p1,1,k);
p2 = go(p2,-1,m);
printf("%3d",p1);left--;
if(p2 != p1) {
printf("%3d",p2);left--;
}
a[p1] = a[p2] = 0;
if(left) cout<<",";
}
cout<<endl;
}
return 0;
}
相關推薦
救濟金髮放 UVA 133
#include<iostream> using namespace std; int n,k,m,a[25]; int go(int p,int d,int t) {while(t--){do{p = (p+d+n-1)%n+1;}while(a[p] ==
救濟金髮放(The Dole Queue,UVa 133)
救濟金髮放 問題描述 n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能來兩個官員停在同一人上)。接下來被官員選中的人(1個或者2個)離
例題 4-3 救濟金髮放(The Dole Queue) UVa 133
題目: 為了縮短領救濟品的隊伍,NNGLRP決定了以下策略:每天所有來申請救濟品的人會被放在一個大圓圈,面朝裡面。選定一個人為編號 1 號,其他的就從那個人開始逆時針開始編號直到 N。一個官員一開始逆
UVa 133 救濟金髮放
題意:所有n個人圍成一個圈,一邊從1號開始逆時針數k個,出局;一邊從n號開始順時針數m個,出局。兩個同時發生。如果這兩個數到同一個人,就這個人出局。 facing inwards 面朝裡; counter 相反地,clockwise 順時針,counter-
救濟金髮放(uva-133)
N個人占城一圈,逆時針編號為1~n.有兩個官員,A從1開始逆時針數,B從n順時針開始。在每一輪中,官員A數k個數就停下來,官員B數m個就停下來(注意有可能連個官員停在同一個人上)。接下來被官員選中的人離開隊伍。 輸入n,k,m輸出每輪裡被選中的人的編號(如果有兩個人)先輸出
例題4-3 救濟金髮放(The Dole Queue, UVa 133)題解——23行程式碼
題目描述 題意解析 n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)。接下來被官員選中的人(1個或者2個)離開
演算法競賽 例4-3救濟金髮放(The Dole Queue,UVa 133)
n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)
例題4-3 救濟金髮放(The Dole Queue, UVa 133)
n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開 始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個 官員停在同一個人上)。接下來被官員選中的人(1個或者2個)離開隊伍。 輸入n,k,m輸出每輪裡被
(救濟金髮放)The Dole Queue(UVA
傳送門//迴圈佇列 #include<iostream> #include<cstdio> using namespace std; const int maxn=25; int n,k,m,a[maxn]; int go(int p,int
例題4-3--救濟金髮放
題目: n(n<20)個人站成一圈,逆時針編號為1~n。 有兩個官員,A從1開始逆時針數,B從n開始順時針數。 在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)。 接下來被官員選中的人(1個或者2個)離開隊伍。輸入n,k,m輸出每輪裡被選中的人
UVa133 救濟金髮放 The Dole Queue
Description In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoceros Party has decided on the f
演算法競賽入門-救濟金髮放(The Dole Queue )
1、題目n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)。接下來被官員選中的人(1個或者2個)離開隊伍。輸入n,k,m輸出每輪裡
UVa133救濟金髮放
題目:n個人圍成一圈,逆時針編號1~n,A從1開始逆時針數,B從n開始順時針數,在每一輪中,A數p個就停下來,B數q個就停下來,被選中的人離開隊伍,輸出離開隊伍的編號 思路:水模擬 程式碼: #include<stdio.h> #include<stri
救濟金髮放
#include<stdio.h> #include<stdlib.h> #include<string.h> #define M 100 void F(int n,int k,int m) { <span style="whit
133UVa救濟金髮放——動態連結串列
注意,當要刪除的兩個節點相鄰時,counter= counter->right; clock= clock->left; #include<stdio.h> class
例題4-3 救濟金髮放 UVa133
int book[100];//領過的標記1,沒領過的標記0 int main(){ int n,k,m; int kcount,mcount; int ki,mi; int kout,mout; int first; int ncount; whil
演算法競賽入門經典(第2版)救濟金髮放(The Dole Queue,UVa133)
演算法競賽入門經典(第2版)救濟金髮放(The Dole Queue,UVa133 import java.util.Scanner; /** * @author Joker */ publ
救濟金髮放UVa133
n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就會停下來(注意又可能兩個官員停在同一個人上)。接
例題4-3救濟金髮放
n個人站成一圈,逆時針編號為1到n,有兩個官員,A從1開始逆時針發放,B從n開始順時針發放。在每一輪中,官員A數k個就停下來,官員B數m個就停下來了(有可能兩個官員停在同一個人身上)。接下來被官員選中的人離開隊伍。本來逆時針順時針應該寫兩個go函式,但是發現可以合併通過取餘運
OJ演練--救濟金髮放(迴圈)
(n<20)個人站成一圈,逆時針編號為1~n。 有兩個官員,A從1開始逆時針數,B從n開始順時針數。 在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)。 接下來被官員選中的人(1個或者2個)離開隊伍。輸入n,k,m