首页 > 代码库 > UVa12100,Printer Queue
UVa12100,Printer Queue
水题,1A过的
数据才100,o(n^3)都能过,感觉用优先队列来做挺麻烦的,直接暴力就可以了,模拟的队列,没用stl
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <queue>#define maxn 100+5using namespace std;int mid[maxn],v[maxn],q[maxn*maxn],ans;int n,m,id;int init(){ memset(mid,0,sizeof(mid)); memset(v,0,sizeof(v)); memset(q,0,sizeof(q)); cin>>n>>m; id=0;ans=0; for (int i=0;i<n;i++){ mid[i]=i; cin>>v[i]; }}int find_max(){ int max=0; for (int i=0;i<n;i++) max=v[i]>max?v[i]:max; return max;}int work(){ int head,tail,max; head=0;tail=n-1; for (int i=0;i<n;i++) q[i]=i; while (head<tail){ int t=find_max(); if (q[head]==m&&t==v[m]){ break; }else if (v[q[head]]==t) { v[q[head]]=0; head++; ans++; }else { tail++; q[tail]=q[head]; head++; } }}int main(){ int T; cin>>T; while (T-->0){ init(); work(); cout<<ans+1<<endl; }}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。