• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            2182 Lost Cows

            Lost Cows

            Time Limit: 1000MS Memory Limit: 65536K
            Total Submissions: 2824 Accepted: 1742

            Description

            N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neighborhood 'watering hole' and drank a few too many beers before dinner. When it was time to line up for their evening meal, they did not line up in the required ascending numerical order of their brands.

            Regrettably, FJ does not have a way to sort them. Furthermore, he's not very good at observing problems. Instead of writing down each cow's brand, he determined a rather silly statistic: For each cow in line, he knows the number of cows that precede that cow in line that do, in fact, have smaller brands than that cow.

            Given this data, tell FJ the exact ordering of the cows.

            Input

            * Line 1: A single integer, N

            * Lines 2..N: These N-1 lines describe the number of cows that precede a given cow in line and have brands smaller than that cow. Of course, no cows precede the first cow in line, so she is not listed. Line 2 of the input describes the number of preceding cows whose brands are smaller than the cow in slot #2; line 3 describes the number of preceding cows whose brands are smaller than the cow in slot #3; and so on.

            Output

            * Lines 1..N: Each of the N lines of output tells the brand of a cow in line. Line #1 of the output tells the brand of the first cow in line; line 2 tells the brand of the second cow; and so on.

            Sample Input

            5
            1
            2
            1
            0
            

            Sample Output

            2
            4
            5
            3
            1
            

            Source



            Analysis

            Which number can we determine at the first glance of the input data? Of course, the answer is the tail. Suppose the last number of the input data, which is the number of cows with lower brand number than it, is a[n]. According to the defination, the last cow gets the (a[n]+1)th number, since there are a[n] brand number before. What's more, the brand number is constrained in range from 1 to n, so the last number is well ensured.

            Later, the earlier one will be determined in a set containing the numbers range from 1 to n except b[n], which is the brand number of the last cow. Obviously, the brand number is the (a[n-1]+1)th number in the set. The problem turns to be the method to save and search used numbers. If we create a constantly array, the cost of time in deleting and searching is both O(n) and the whole cost is o(n^2). Just consider about the segment tree. Create a segment tree of range [1,n], and the number of tree[p] is the number of brands used. When a number is inserting, calculate the remaining number of the left range: m-l+1-tree[p]. If it is larger than the current number, which is a[i]+1, then searching the left child. Otherwise, search the right one. When it is searching, adding the current root since it is clear to see that a new member is coming now. At last, when the search comes to an end and find a leave, record the range number.

            My code:

            #include <stdio.h>
            #include 
            <stdlib.h>
            #include 
            <memory.h>
            #define MAX 8000

            int main(){
                
            int n,i;
                
            int a[MAX],b[MAX];
                
            int tree[4*MAX+1];
                scanf(
            "%d",&n);
                a[
            0]=0;
                
            for (i=1;i<n;i++)
                    scanf(
            "%d",a+i);
                
            for (i=n-1;i>=0;i--){
                    
            int l,r,p,m,no;
                    no
            =a[i]+1;
                    l
            =1;r=n;p=1;
                    
            while (l<r){
                        tree[p]
            ++;
                        m
            =(l+r)>>1;
                        
            if (m-l+1-tree[2*p]>=no ){
                            r
            =m;
                            p
            <<=1;
                        }

                        
            else {
                            no
            -=m-l+1-tree[2*p];
                            l
            =m+1;
                            p
            =2*p+1;                
                        }

                    }

                    tree[p]
            ++;
                    b[i]
            =l;
                }

                
            for (i=0;i<n;i++)
                    printf(
            "%d\n",b[i]);
                
            return 0;
            }

            posted on 2008-11-22 20:36 幻浪天空領主 閱讀(838) 評論(0)  編輯 收藏 引用 所屬分類: POJ

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆檔案(2)

            文章分類(23)

            文章檔案(22)

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            国产精品久久99| 综合久久一区二区三区| 99精品国产在热久久| 久久精品九九亚洲精品天堂| 久久久久亚洲av毛片大| 97精品国产97久久久久久免费 | 久久夜色tv网站| 久久WWW免费人成—看片| 久久国产AVJUST麻豆| 久久久久久无码Av成人影院| 久久九九久精品国产| 亚洲精品国产字幕久久不卡| 999久久久免费国产精品播放| 久久精品卫校国产小美女| 91精品国产91热久久久久福利| 九九精品久久久久久噜噜| 精品久久久久久无码中文字幕一区| 国产激情久久久久影院老熟女免费 | 人妻丰满?V无码久久不卡| 99re这里只有精品热久久| 国内高清久久久久久| 久久国产精品免费一区| 热99re久久国超精品首页| 久久精品国产亚洲av麻豆蜜芽| 久久99精品久久久久久野外| www久久久天天com| 久久综合精品国产二区无码| 欧美亚洲国产精品久久| 亚洲精品tv久久久久久久久久| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 久久国产一区二区| 婷婷久久久亚洲欧洲日产国码AV| 久久午夜综合久久| 99久久国产主播综合精品| 久久天堂电影网| 久久精品国产一区| 99精品久久久久中文字幕| 青青热久久综合网伊人| 国产成人精品久久一区二区三区av | 新狼窝色AV性久久久久久| 无码国产69精品久久久久网站|