• <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精品国产麻豆宅宅| 精品久久久无码人妻中文字幕豆芽| 久久久久久狠狠丁香| 亚洲综合久久综合激情久久| 久久亚洲欧洲国产综合| 伊人久久久AV老熟妇色| 久久亚洲精品中文字幕三区| 精品国产婷婷久久久| 国产精品久久久久jk制服| 久久人妻少妇嫩草AV无码蜜桃| 久久99亚洲网美利坚合众国| 亚洲国产精品成人AV无码久久综合影院 | 国产精品久久久久a影院| 久久久久亚洲AV无码网站| 久久久黄片| 一本久久a久久精品综合夜夜| 色诱久久久久综合网ywww| 日韩AV毛片精品久久久| 久久国产乱子精品免费女| 亚洲AV无码久久精品成人| 久久人人超碰精品CAOPOREN| 一级做a爰片久久毛片人呢| 99久久99这里只有免费费精品 | 91精品国产91久久久久久蜜臀| 亚洲va久久久噜噜噜久久天堂| 日韩精品无码久久一区二区三| 51久久夜色精品国产| 97精品国产91久久久久久| 亚洲精品无码久久久影院相关影片| 久久久久国产亚洲AV麻豆| 精品久久人人做人人爽综合| 久久国产成人精品麻豆| 久久成人精品视频| 色综合久久久久网| 久久成人精品视频| 91精品国产高清久久久久久91| 久久er国产精品免费观看2| 国产91久久综合| 无码任你躁久久久久久| 欧美国产成人久久精品| 亚洲熟妇无码另类久久久|