首页 > 其他 > 详细

uva12100(打印队列)

时间:2017-01-17 12:55:11      阅读:861      评论:0      收藏:0      [点我收藏+]

直接模拟就好了,注意一下结束的条件。

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <string>
 4 #include <queue>
 5 #include <cstdio>
 6 #include <vector>
 7 
 8 using namespace std;
 9 queue<int> q;
10 int main()
11 {
12     int n,i,j,k,t;
13     int a[1010];
14     int b[1010];
15     cin >> t;
16     while(t--)
17     {
18         cin >> n >> k;
19         for(i=0; i<n; i++)
20             cin >> a[i];
21         for(i=0; i<n; i++)
22             q.push(a[i]);
23         for(i=0; i<n; i++)
24             b[i] = a[i];
25         sort(b,b+n);
26         int tail = k; //tail是指向目标的指针
27         int cnt = 1;
28         int flag = n-1;
29         while(1)
30         {
31             if(tail < 0)
32                 tail = q.size()-1;
33             if(q.front()==b[flag])
34             {
35                 if(tail == 0)
36                     break;
37                 q.pop();
38                 tail--;
39                 cnt++;
40                 flag--;
41             }
42             else
43             {
44                 int m = q.front();
45                 q.pop();
46                 q.push(m);
47                 tail--;
48             }
49         }
50         cout << cnt << "\n";
51         while(!q.empty())
52             q.pop();     //一定不要忘记把队列清空!!!
53     }
54     return 0;
55 }

 

uva12100(打印队列)

原文:http://www.cnblogs.com/HsiaoYeekwan/p/6292493.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!