• <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>

            C小加

            厚德 博學 求真 至善 The bright moon and breeze
            posts - 145, comments - 195, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

            Ural 1119. Metro NYOJ 195 飛翔 解題報告

            Posted on 2012-02-25 08:50 C小加 閱讀(549) 評論(1)  編輯 收藏 引用 所屬分類: 解題報告

            DP

            1、每一行最多只可以走一次捷徑,每一列也是最多只可以走一次捷徑

            2、每次走過捷徑后的橫坐標和縱坐標都要大于之前的坐標

            只要求出從起點到終點所經過的最多的捷徑,就能得到最少的路程。每一步的最優解用之前走過的路徑所求,滿足無后效性,每一個子狀態都可以求出最優解,滿足最優子結構,可以用dp解決。

            f[i]=max(f[j]+1,f[i]);

            j點坐標小于點,i點為捷徑時,走到i點坐標時經過的最多捷徑數=max(走到j點的最多捷徑數+1,走到i點時的最多捷徑數)

            最后找出最大的f(i)就是能經過最多的捷徑

            注意坐標的輸入沒有順序性,要進行排列。

            #include <iostream>
            #include <cstring>
            #include <algorithm>
            #include <cmath>
            #include <cstdio>
            using namespace std;
            const int MAXN=1003;
            typedef struct
            {
                int a,b;
            }point;
            point p[MAXN];
            int f[1003];
            bool cmp(point p1,point p2)
            {
                if(p1.a==p2.a) return p1.b<p2.b;
                return p1.a<p2.a;
            }
            int main()
            {
                //freopen("1.in","r",stdin);
                int m,n;
                while(cin>>n>>m)
                {
                    int k;
                    cin>>k;
                    for(int i=0;i<k;i++)
                    {
                        cin>>p[i].a>>p[i].b;
                        f[i]=1;
                    }
                    sort(p,p+k,cmp);//如果橫坐標相等,按照縱坐標從小到大排序,否則按照橫坐標從小到大排序
                    int v=0,flag=0;
                    
                    //dp
                    for(int i=0;i<k;i++)
                    {
                        for(int j=0;j<=i;j++)
                        {
                            if(p[i].a>p[j].a)
                            {
                                if(p[i].b>p[j].b) f[i]=max(f[j]+1,f[i]);
                            }
                        }

                    }
                    //求用到最多捷徑的點
                    int ma=*max_element(f,f+k);
                    cout<<(int)((m+n-2*ma)*100+ma*100*sqrt(2.0)+0.5)<<endl;

                }


                return 0;
            }
                    

            Feedback

            # re: Ural 1119. Metro NYOJ 195 飛翔 解題報告  回復  更多評論   

            2012-02-26 02:31 by 四季青租房
            最近也想學,
            發現了此處
            哈哈
            久久婷婷国产综合精品| 久久精品无码一区二区日韩AV| 99久久99这里只有免费的精品| 国内精品久久久久影院一蜜桃| 国产巨作麻豆欧美亚洲综合久久 | 中文字幕久久欲求不满| 亚洲伊人久久成综合人影院| 国内精品久久久久影院日本| 大蕉久久伊人中文字幕| 久久久亚洲裙底偷窥综合| 久久久久人妻精品一区| 怡红院日本一道日本久久| 污污内射久久一区二区欧美日韩| 国产人久久人人人人爽| 久久精品女人天堂AV麻| 久久国产精品99久久久久久老狼| 国产精品99久久久精品无码| 婷婷久久综合九色综合98| 99精品国产99久久久久久97 | 国产精品久久久久9999| 欧美日韩精品久久久久| 99久久精品久久久久久清纯| 综合久久国产九一剧情麻豆| 久久性生大片免费观看性| 欧美综合天天夜夜久久| 日韩精品无码久久久久久| 久久亚洲AV无码精品色午夜| 国产亚洲美女精品久久久| 91麻豆精品国产91久久久久久| 一本色道久久88—综合亚洲精品| 亚洲成av人片不卡无码久久| 国产免费福利体检区久久| 久久久久久综合一区中文字幕| 久久精品国产亚洲AV无码麻豆 | 99久久人人爽亚洲精品美女| 国产精品久久久久影院嫩草| 久久国产亚洲精品无码| 97精品伊人久久大香线蕉app| 99久久久精品免费观看国产| 久久精品国产精品亚洲毛片| 热久久这里只有精品|