zoukankan      html  css  js  c++  java
  • UVa12100,Printer Queue

    水题,1A过的

    数据才100,o(n^3)都能过,感觉用优先队列来做挺麻烦的,直接暴力就可以了,模拟的队列,没用stl

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <cstring>
    #include <queue>
    #define maxn 100+5
    using 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;
        }
    }
    View Code
  • 相关阅读:
    第十三周课程总结
    第十二周课程总结
    第十一周课程总结
    C语言||作业01
    C语言寒假大作战03
    C语言寒假大作战4
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12—学期总结
    第一周作业
  • 原文地址:https://www.cnblogs.com/acbingo/p/3865900.html
Copyright © 2011-2022 走看看