【模拟】【环形数组】-UVA-133- The Dole Queue
2014-03-02 12:57
686 查看
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=69
题目描述:
1~N个人站成圈,公务猿 A 从1 开始顺时针查过 k 个人,公务猿 B 从N开始逆时针查过 m 个人,他俩查出的人出列(可以是重复的同一个人),把每次出列的人输出来,直到队列中木有人。
解题思路:
看完题就想起了之前例会上学长讲的数组模拟queue功能的方法——循环数组,就是用求余运算来实现,这道题也算是比较简单的。按想法写出来就AC了。
AC代码:
AC截图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/14/4bbd59a2d7149ab510efbac9f9956e02)
题目描述:
1~N个人站成圈,公务猿 A 从1 开始顺时针查过 k 个人,公务猿 B 从N开始逆时针查过 m 个人,他俩查出的人出列(可以是重复的同一个人),把每次出列的人输出来,直到队列中木有人。
解题思路:
看完题就想起了之前例会上学长讲的数组模拟queue功能的方法——循环数组,就是用求余运算来实现,这道题也算是比较简单的。按想法写出来就AC了。
AC代码:
#include <cstdio> #include <iostream> #include <cstring> using namespace std; int arr_1[500],arr_2[500]; bool use[30]; void reset(int n) { memset(arr_1,0,sizeof(arr_1)); memset(arr_2,0,sizeof(arr_2)); memset(use,0,sizeof(use)); int i,j; for(i=1;i<=n;i++) { arr_1[i]=i; } for(i=1,j=n;i<=n;i++) { arr_2[i]=j--; } } void solve(int N,int k,int m) { int found,p1,p2,c1,c2,i; p1=1;p2=1; found=0; while(found<N) { c1=0;c2=0; for(;;p1++) { if(!use[arr_1[p1]]) c1++; if(c1==k) { found++; break; } if(p1==N) p1=0; } for(;;p2++) { if(!use[arr_2[p2]]) c2++; if(c2==m) { if(arr_2[p2]!=arr_1[p1]) found++; break; } if(p2==N) p2=0; } use[arr_1[p1]]=1; use[arr_2[p2]]=1; if(arr_1[p1]!=arr_2[p2]) printf("%3d%3d",arr_1[p1],arr_2[p2]); else printf("%3d",arr_1[p1]); if(found<N) printf(","); } printf("\n"); } int main() { int N,k,m; while(scanf("%d%d%d",&N,&k,&m),N||k||m) { reset(N); solve(N,k,m); } return 0; }
AC截图:
相关文章推荐
- 【模拟】【环形数组】-UVA-133- The Dole Queue |java实现
- UVa 133 The Dole Queue (模拟循环链表)
- UVA - 133 The Dole Queue(模拟链表)
- uva 133 The Dole Queue 双向约瑟夫环 模拟实现
- UVA - 133 The Dole Queue(自顶向下 模拟)
- UVA 133 The Dole Queue 约瑟夫问题的变种,手写链表,模拟
- uva 133 The Dole Queue 双向约瑟夫环 模拟实现
- uva133 The Dole Queue ( 约瑟夫环的模拟)
- UVa 133 - The Dole Queue【模拟】
- 2018_2_3_The Dole Queue 模拟_uva133
- Uva 133 - The Dole Queue//模拟,链表
- uva133 The Dole Queue 循环队列模拟
- UVA133 The Dole Queue (模拟)
- UVA133 The Dole Queue【模拟】
- UVA - 133 The Dole Queue 单纯模拟:1A
- 假期训练——The Dole Queue UVA - 133 模拟
- uva133 The Dole Queue ( 约瑟夫环的模拟)
- UVa 133 - The Dole Queue
- uva 133 - The Dole Queue
- 算法竞赛入门经典(紫书)第四章—— The Dole Queue UVA-133