CodeForces 546C Soldier and Cards(队列模拟)
2015-05-27 09:57
239 查看
题目链接:click here~~
【题目大意】两人玩牌,每次比较第一张牌的大小,放到底部,问最后谁赢,如果一直循环,则输出-1
【解题思路】设置两个队列,按照题目意思模拟一下即可,注意在循环一定次数下仍然没有结果,则无解
代码:
【题目大意】两人玩牌,每次比较第一张牌的大小,放到底部,问最后谁赢,如果一直循环,则输出-1
【解题思路】设置两个队列,按照题目意思模拟一下即可,注意在循环一定次数下仍然没有结果,则无解
代码:
<span style="font-family:SimSun;font-size:14px;">#include <bits/stdc++.h> using namespace std; const int N=1e6; queue <int>va,vb; int main() { int t,a,b,n,m; scanf("%d",&t); scanf("%d",&n); for(int i=0; i<n; i++) { scanf("%d",&a); va.push(a); } scanf("%d",&m); for(int i=0; i<m; i++) { scanf("%d",&b); vb.push(b); } int s=0; while(!va.empty()&&!vb.empty()) { s++; if(s>N) break; int vah=va.front(); int vbh=vb.front(); va.pop(); vb.pop(); if(vah<vbh) { vb.push(vah); vb.push(vbh); } if(vah>vbh) { va.push(vbh); va.push(vah); } } if(va.empty()||vb.empty()) { if(va.empty()) { printf("%d 2\n",s); } else printf("%d 1\n",s); } else puts("-1"); return 0; }</span>
相关文章推荐
- Codeforces 721D (优先队列,模拟)
- 【CodeForces - 864】 A B C【模拟】 D【贪心+优先队列】
- 【codeforces 681C】【优先队列+模拟】 Heap Operations
- PAT堆栈模拟队列
- Codeforces 30D King's Problem? 模拟
- CodeForces 339B (贪心模拟)
- uva12100 Printer Queue (队列模拟, 据说是优先队列,错了)
- 5-18 银行业务队列简单模拟 (25分)
- Codeforces 599C Day at the Beach【思维+优先队列】
- CodeForces 518C - Watto and Mechanism(模拟)
- Codeforces 166C Median 暴力模拟
- Java数组和链表模拟队列
- CF 19C 后缀数组O(1)判Repeats ,优先队列模拟操作+map离散
- Codeforces 689A. Mike and Cellphone(模拟)
- codeforces 931A - Friends Meeting 模拟
- Codeforces-691B-s-palindrome(模拟)
- CodeForces - 370B 模拟 思维
- 离散事件模拟-银行管理 (队列模拟)
- Codeforces 246B-Increase and Decrease【模拟】
- Codeforces 770D Draw Brackets!【模拟+思维】