• <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)  編輯 收藏 引用
            久久国产午夜精品一区二区三区| 久久久久久午夜成人影院| 国产精品永久久久久久久久久| 91久久香蕉国产熟女线看| 久久精品国产精品亚洲| 久久婷婷五月综合国产尤物app| 亚洲精品乱码久久久久久中文字幕| 中文字幕乱码久久午夜| 色偷偷888欧美精品久久久| 色婷婷久久综合中文久久一本| 中文字幕热久久久久久久| 中文字幕亚洲综合久久| 亚洲av伊人久久综合密臀性色| 久久免费国产精品一区二区| 久久婷婷色综合一区二区| 一本伊大人香蕉久久网手机| 久久热这里只有精品在线观看| 国产精品久久久久天天影视| 久久婷婷午色综合夜啪| 亚洲国产精品婷婷久久| 一本色道久久99一综合| 一本久久综合亚洲鲁鲁五月天| 色综合合久久天天综合绕视看| 亚洲精品午夜国产VA久久成人| 亚洲精品国产自在久久| 久久久中文字幕日本| 99久久99久久精品国产| 久久精品99久久香蕉国产色戒| 色播久久人人爽人人爽人人片AV| 久久国产精品一区| 精品国产热久久久福利| 国产精品欧美亚洲韩国日本久久 | AA级片免费看视频久久| 久久狠狠高潮亚洲精品| 国产成人精品久久一区二区三区| 中文字幕热久久久久久久| 亚洲精品乱码久久久久久蜜桃图片 | 久久精品国产半推半就| 999久久久免费精品国产| 久久久久无码精品国产| 成人免费网站久久久|