UVa-133-The Dole Queue
// 133 - The Dole Queue #include <cstdio> #include <cstdlib> typedef struct node { int num; struct node* pre; struct node* next; }*ptr; ptr creatnode(int elem) { ptr temp; temp = (struct node*)malloc(sizeof(struct node)); if(temp == NULL) exit(EXIT_FAILURE); temp->num = elem; temp->pre = NULL; temp->next = NULL; return temp; } void creatlist(ptr* x, ptr* y, int n) { ptr head, temp; head = creatnode(1); temp = head; for(int i = 2; i <= n; i++) { temp->next = creatnode(i); temp->next->pre = temp; temp = temp->next; } temp->next = head; head->pre = temp; *x = head; *y = temp; } void deletenode(ptr t) { ptr temp = t; temp->next->pre = t->pre; temp->pre->next = t->next; printf("%3d", t->num); free(t); } int main(void) { int i, n, k, m, cnt; ptr x, y, x_t, y_t; while(scanf("%d%d%d", &n, &k, &m) && n) { cnt = 0; creatlist(&x, &y, n); while(cnt != n) { for(i = 1; i < k; i++) x = x->next; for(i = 1; i < m; i++) y = y->pre; if(x == y) { x_t = x->next; y_t = y->pre; deletenode(x); cnt++; } else if(x->next == y) { x_t = y->next; y_t = x->pre; deletenode(x); deletenode(y); cnt += 2; } else { x_t = x->next; y_t = y->pre; deletenode(x); deletenode(y); cnt += 2; } x = x_t; y = y_t; if(cnt != n) printf(","); } printf("\n"); } return 0; }
相關推薦
[UVa 133]The Dole Queue 救濟金發放
pos 逆時針 ica order first triple select mas data In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rh
【模擬】【環形陣列】-UVA-133- The Dole Queue
題目描述: 1~N個人站成圈,公務猿 A 從1 開始順時針查過 k 個人,公務猿 B 從N開始逆時針查過 m 個人,他倆查出的人出列(可以是重複的同一個人),把每次出列的人輸出來,直到佇列中木有人。 解題思路: 看完題就想起了之前例會上學長講的陣列模擬queue功能的方法
UVa 133 The Dole Queue(圈的下標處理)
本題難點在於用陣列處理圈狀物時下標的計算。 #include <cstdio> #include <string.h> using namespace std; cons
UVa-133-The Dole Queue
// 133 - The Dole Queue #include <cstdio> #include <cstdlib> typedef struct node { int num; struct node* pre; struct no
uvaoj 133 - The Dole Queue(邏輯,環形隊列數數)
its main ems color space col () span bit https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&
uvaoj 133 - The Dole Queue(邏輯,環形佇列數數)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=69 有n個人向內排成一圈,從一個位置開始逆時針數k個,第k個出隊,從一個位置開始順時針數m
紫書——The Dole Queue UVA - 133
題解: 這道題目書上有題解,水題直接給出程式碼orz 主要是兩個人都會挑選,判斷好方向和次數就行(注意點:兩個挑選完後才判斷和刪除人,不要挑選一個就刪除一個) #include <bits/stdc++.h> using namespace std;
救濟金髮放(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。一個官員一開始逆
例題4-3 救濟金髮放(The Dole Queue, UVa 133)題解——23行程式碼
題目描述 題意解析 n(n<20)個人站成一圈,逆時針編號為1~n。有兩個官員,A從1開始逆時針數,B從n開始順時針數。在每一輪中,官員A數k個就停下來,官員B數m個就停下來(注意有可能兩個官員停在同一個人上)。接下來被官員選中的人(1個或者2個)離開
The Dole Queue(子過程設計)(UVa 133)
In a serious attempt to downsize (reduce) the dole queue, The New National Green Labour Rhinoceros Party has decided on the following strategy. Every d
演算法競賽 例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-133
題意: 將 N 個數寫在一個環上,順時針數 k 個得到 x1,逆時針數 m 個得到 x2,將 x1 和 x2 輸出,如果相同則只輸出其中一個,輸出後將其從環上刪除。如此反覆。 思路: 將環想象
The Dole Queue UVA
演算法上那本紫書.. P8210%9是1 19%10就像是9%10 是9goto的思想..... ?其實不是很麻煩.. 寫個函式好了然後就是一定要注意邊界... 還有比如p+d%n那個,一個是括號
(救濟金髮放)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
The Dole Queue【紫書例題4.3】
題意: n個人圍成個圓,從1到n,一個人從1數到k就讓第k個人離場,了另一個人從n開始數,數到m就讓第m個人下去,直到剩下最後一個人,並依次輸出離場人的序號。 水題,直接上標程了 #include<stdio.h> #define maxn 25 int n
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輸出每輪裡
The Dole Queue 約瑟夫環 模擬
A CM Conte st Problems Archive Univers ity of Valladolid (SPAIN) 133 The Dole Queue In a serious