UVa 12100 打印队列
来源:互联网 发布:沙特购买中国武器知乎 编辑:程序博客网 时间:2024/05/18 01:58
分析:这个题可以说是个水题吧,但我感觉这样的题用STL简直是大材小用了,用一个数组模拟一个队列即可。
这个题的小技巧就在于跟踪要打印任务的下标。
这个题的小技巧就在于跟踪要打印任务的下标。
代码如下:
#include <cstdio>
int a[5005],n,m;
int panduan(int t,int r)
{
for(int i=t+1;i<r+1;i++)
if (a[i]>a[t]) return 1;//检查是该输出还是该扔了后面去
return 0;
}
int main()
{
int tot;
scanf("%d",&tot);
while (tot--)
{
scanf("%d%d",&n,&m);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
int ans=0;
int f=0,r=n-1;
while (1)
{
if (panduan(f,r))
{
a[++r]=a[f];
if (f==m) m=r;//跟踪下标
f++;
}
else
{
if (m==f) {printf("%d\n",ans+1);break;}
ans++;f++;
}
}
}
return 0;
}
#include <cstdio>
int a[5005],n,m;
int panduan(int t,int r)
{
for(int i=t+1;i<r+1;i++)
if (a[i]>a[t]) return 1;//检查是该输出还是该扔了后面去
return 0;
}
int main()
{
int tot;
scanf("%d",&tot);
while (tot--)
{
scanf("%d%d",&n,&m);
for (int i=0;i<n;i++)
scanf("%d",&a[i]);
int ans=0;
int f=0,r=n-1;
while (1)
{
if (panduan(f,r))
{
a[++r]=a[f];
if (f==m) m=r;//跟踪下标
f++;
}
else
{
if (m==f) {printf("%d\n",ans+1);break;}
ans++;f++;
}
}
}
return 0;
}
0 0
- UVa 12100 打印队列
- Printer Queue 打印队列 UVA 12100
- uva 12100 Printer Queue(打印队列)模拟
- 5-7 UVA 12100 Printer Queue打印队列
- uva 12100 Printer Queue 习题5-7 打印队列 (STL deque练习)
- 关于“打印队列 Printer Queue, ACM/ICPC NWERC 2006, UVa 12100)"的讨论
- UVA 12100 Printer Queue(队列,优先队列)
- 打印队列
- UVa 12100 - Printer Queue【队列和优先队列】
- 打印螺旋队列
- Printer Queue打印队列
- 打印队列(Printer Queue)
- 螺旋队列的打印
- UVA12100-打印队列
- 如何取消打印队列
- UVA 540 小团体队列
- uva 11078 单调队列
- UVA 540(队列)
- 70,self的应用
- ubuntu安装eclipse
- #保护用虚拟机调试通用方法
- 在Linux中升级Python
- [转载]cookie和session的区别和应用场景
- UVa 12100 打印队列
- CA证书的学习笔记
- 深入理解C语言
- 日志收集并发送指定邮箱(一)
- WebKit之MediaPlayer的简单分析
- 保护用虚拟机调试通用方法
- java IO的装饰器模式(二)
- 电子与通信领域当前的主流技术及其社会需求调查报告
- 从java基础加深对面向对象的理解·