zoukankan      html  css  js  c++  java
  • 列车调度

    【题目分析】

      构造一个队列(先进先出)进行模拟,因为要输出N,N-1,N-1,……,1,所以在每次加入元素时,只要比较已有的队列中的队尾元素,当队尾元素比加入的元素大时可以把加入的元素放在这个队列的队尾,否则新成立一个队列,时间复杂度O(n^2),十万的数据可定会超时,然而...此题数据略水,被我卡过了

     

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    int n;
    
    struct node{
        int head,tail;
    }q[100010];
    int cnt=0,x;
    
    int main()
    {
        freopen("manage.in","r",stdin);
        freopen("manage.out","w",stdout);
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&x);
            int flag=0;
            for(int j=1;j<=cnt;j++)
                if(q[j].tail>x)
                {
                    q[j].tail=x;
                    flag=1;
                    break;
                }
            if(flag==0)
                q[++cnt].tail=x;
        }
        printf("%d",cnt);
        fclose(stdin);fclose(stdout);
        return 0;
    }

    正解据说是拦截导弹第二问

    #include <cstdio>
    using namespace std;
    #define MAX 100000
    #define INF 100000000
    int a[MAX],c[MAX],len;
    int find(int L,int R,int x)
    {
        if (L == R) return L;
        int mid = (L+R)>>1;
        if (c[mid] < x)
            return find(mid+1,len,x);
        else
            return find(L,mid,x);
    }
    int main()
    {
        freopen("manage.in", "r", stdin);
        freopen("manage.out", "w", stdout);
    
        int i,n,t,m,T,b,k,ans,j,max;
    
        scanf("%d", &n);
        for(i = 0; i < n; i++)
            scanf("%d", &a[i]);
        len = 0;
        c[0] = -INF;
        for(i = 0; i < n; i++)
        {
            if (a[i] > c[len])
                j = ++len;
            else
                j = find(1, len, a[i]);
            c[j] = a[i];
        }
        printf("%d
    ",len);
        return 0;
    }
  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/xiaoningmeng/p/5997050.html
Copyright © 2011-2022 走看看