• <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)  編輯 收藏 引用
            亚洲精品国产第一综合99久久| 午夜不卡久久精品无码免费| 久久99亚洲综合精品首页| 久久久国产精品| 久久综合香蕉国产蜜臀AV| 2020最新久久久视精品爱| 狠狠色丁香久久婷婷综合图片| 久久成人精品视频| 中文字幕乱码久久午夜| 精品久久久久久国产牛牛app| 亚洲狠狠婷婷综合久久久久| 国产成人久久精品麻豆一区| 色综合久久久久综合体桃花网| 久久亚洲国产精品123区| 国产亚洲欧美精品久久久| 久久综合五月丁香久久激情| 97r久久精品国产99国产精| 久久综合亚洲色一区二区三区| 2020最新久久久视精品爱| 久久成人国产精品免费软件| 亚洲国产精品无码久久九九| 国产精品免费久久久久影院 | 97久久超碰国产精品2021| 欧美激情精品久久久久久久九九九| 久久国产精品99国产精| 亚洲精品国产字幕久久不卡| 亚洲七七久久精品中文国产| 午夜精品久久影院蜜桃| 久久综合伊人77777| 久久青青草原精品国产不卡| 久久久国产精华液| 亚洲国产精品成人久久蜜臀 | 亚洲AV日韩精品久久久久| 国产精品乱码久久久久久软件| 久久综合久久性久99毛片| 狠狠色伊人久久精品综合网| 国产午夜精品久久久久九九| 欧美日韩精品久久久免费观看| 久久人人爽人爽人人爽av| 亚洲欧美另类日本久久国产真实乱对白| 久久精品国产99久久丝袜|