zoukankan      html  css  js  c++  java
  • STL or 线段树 --- CSU 1555: Inversion Sequence

     Inversion Sequence

    Problem's Link:   http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1555


    Mean: 

    给你一个序列a[n],要你按照要求去构造一个序列b。

    序列a[i]表示序列b中的i前面有a[i]个数比i大。

    转换一下就是:

    已知一个连续的序列(1,2,3,4,...),然后告诉了我们这个序列中每个数前面比本身大的个数,根据这些条件将这个序列调整顺序,找到满足条件的序列。

    analyse:

    STL大法好。直接用vector来insert。

    Time complexity: O(nlogn)

    Source code: 

    //  Memory   Time
    //  1347K     0MS
    //   by : crazyacking
    //   2015-03-29-23.24
    #include<map>
    #include<queue>
    #include<stack>
    #include<cmath>
    #include<cstdio>
    #include<vector>
    #include<string>
    #include<cstdlib>
    #include<cstring>
    #include<climits>
    #include<iostream>
    #include<algorithm>
    #define MAXN 1000010
    #define LL long long
    using namespace std;
    const int maxn = 11111; 
    int a[maxn]; 
    int ans[maxn]; 
    vector<int>v; 
      
    int main(){ 
    //    freopen("data.in","r",stdin); 
        int n; 
        while(scanf("%d",&n)!=EOF){ 
            for(int i=0;i<n;i++){ 
                scanf("%d",&a[i]); 
            } 
            v.clear(); 
            v.push_back(0); 
            int ok=1; 
            for(int i=n-1;i>=0;i--) 
            { 
                if(v.size()<=a[i]) 
                { 
                    ok=0; 
                    break; 
                } 
                v.insert(v.begin()+1+a[i],i+1); 
    //            for(int j=0;j<v.size();j++) 
    //                printf("%d%c",v[j],j==v.size()-1?'
    ':' '); 
            } 
            if(ok){ 
                for(int i=1;i<=n;i++){ 
                    printf("%d%c",v[i],i==n?'
    ':' '); 
                } 
            }else{ 
                puts("No solution"); 
            } 
        } 
        return 0; 
    } 
      
    /************************************************************** 
        Problem: 1555 
        User: crazyacking 
        Language: C++ 
        Result: Accepted 
        Time:164 ms 
        Memory:1576 kb 
    ****************************************************************/
    View Code
  • 相关阅读:
    丁丁又病了
    领导之所以是领导
    丁丁的进步
    最近比较烦
    批量更新数据表
    转帖:《EnterLib PIAB深入剖析》系列博文汇总
    XML DOM介绍
    转大白话系列之C#委托与事件讲解大结局
    using
    jQuery工作原理解析以及源代码示例
  • 原文地址:https://www.cnblogs.com/crazyacking/p/4376713.html
Copyright © 2011-2022 走看看