• <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>
            隨筆-65  評論-6  文章-0  trackbacks-0
             1 #include <iostream>
             2 #include <algorithm>
             3 using namespace std;
             4 #define MaxSize 500005
             5 struct trade{
             6     int x,y;
             7 };
             8 trade tp[MaxSize];
             9 int dp[MaxSize];//表示到第i個點時的可得到的最長不降單調序列
            10 int num[MaxSize];//存儲輸入的序列
            11 int n,m;
            12 int cmp(trade a,trade b){
            13     return a.x<b.x;
            14 }
            15 inline void scan(int &x){
            16      char ch;
            17      while (ch=getchar(),ch<'0'||ch>'9');x=ch-'0';
            18      while (ch=getchar(),ch>='0'&&ch<='9')x=x*10+ch-'0';
            19 }
            20 int main(){
            21     //freopen("in.txt","r",stdin);
            22     int i,no=1;
            23     while (~scanf("%d",&n)){
            24         for(i=0;i<n;i++){//輸入交易
            25             scan(tp[i].x);
            26             scan(tp[i].y);
            27         }
            28         //sort(tp,tp+n,cmp);//排序,按第二梯隊查找最長不降單調子序列
            29         memset(dp,0,sizeof(dp));
            30         dp[0]=tp[0].y;
            31         m=0;
            32         for(i=1;i<n;i++){//二分的設計是難點 但思路其實很明了 
            33             //為減小比較規模 應該利用dp數組 做每個可能序列的最大值存儲 這是時間優化關鍵
            34             int mid,low=0,high=m;
            35             while (low<=high){
            36                 mid=(low+high)>>1;
            37                 if(tp[i].y>dp[mid])
            38                     low=mid+1;
            39                 else
            40                     high=mid-1;
            41             }
            42             dp[low]=tp[i].y;
            43             if(low>m)
            44                 m=low;
            45         }    
            46         printf("Case %d:\nMy king, at most %d %s can be built.\n\n",no++,m+1,m?"roads":"road");
            47     }
            48     return 0;
            49 }
            50 
            posted on 2012-07-09 12:25 Leo.W 閱讀(151) 評論(0)  編輯 收藏 引用
            久久天天躁狠狠躁夜夜96流白浆| 国产日产久久高清欧美一区| 99久久精品免费看国产一区二区三区 | 久久99中文字幕久久| Xx性欧美肥妇精品久久久久久| 久久久久18| 久久精品国产亚洲av麻豆小说| 久久国产福利免费| 久久综合综合久久综合| 亚洲?V乱码久久精品蜜桃| 国产精品岛国久久久久| 无码人妻精品一区二区三区久久| 久久九色综合九色99伊人| 99国产精品久久| 97久久国产露脸精品国产| 久久99久久无码毛片一区二区| 亚洲精品美女久久久久99| 久久精品亚洲精品国产欧美| 精品久久久久久久| 久久精品人人做人人爽97 | 综合久久国产九一剧情麻豆| 久久五月精品中文字幕| 久久综合九色综合久99| 国产亚洲精品美女久久久| 亚洲精品乱码久久久久久久久久久久 | 久久久久免费精品国产| 粉嫩小泬无遮挡久久久久久| 国产69精品久久久久9999APGF| 久久精品亚洲男人的天堂| 精品熟女少妇aⅴ免费久久| 精品久久久久久综合日本| 91视频国产91久久久| 久久777国产线看观看精品| 久久发布国产伦子伦精品| 精品熟女少妇a∨免费久久| 无码专区久久综合久中文字幕| 色妞色综合久久夜夜| 色婷婷久久综合中文久久蜜桃av| 久久91精品国产91| 久久夜色精品国产噜噜麻豆| 91精品国产乱码久久久久久|