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

            QuXiao

            每天進步一點點!

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              50 隨筆 :: 0 文章 :: 27 評論 :: 0 Trackbacks

            題目大意:

                給定一個時間期間n,電腦的價格c,以及電腦的維修費用m(y,z)(第y臺電腦從y年用到第z年總的維修費用)。讓你求出在期限n中使用電腦的最低費用。

            思路:
                為了讓總費用最低,你必須作出這樣的決策:假設你正在使用某一臺電腦已用到y年,你y+1年是繼續用這臺電腦,還是重新買第y+1臺電腦(注意,這里的y+1是指輸入中的第y+1行電腦,而不是指你已購買了y+1臺電腦,因為y年只能買輸入中的第y行電腦,為了不產生混淆,將電腦用編號表示)。顯然,某一階段的最優解并不能一定導致全局的最優解,所以肯定不能用貪心。
                我們從最后的情況來考慮,最后必然是某一個編號為y的電腦,從第y年使用到第n年,而前面的1~y-1年,自己只可能購買編號為1~y-1的電腦使用到y-1年。這樣,問題的范圍就減小了,從編號為1~n的電腦使用n年,降低到了編號為1~y-1的電腦使用y-1年。經分析,可推出遞推式:
                F[n] = min { F[i] + c + m[i+1][n] | 0<=i<=n-1 }
            F[n]表示n臺電腦使用n年的最低費用

            代碼:

            #include <cstdio>
            #include <climits>
            #include <cstring>

            const int MAX = 1005;
            int n, c;
            int mend[MAX][MAX];
            int f[MAX];
            int cost;

            bool Input ()
            {
                if ( scanf("%d", &c) == EOF )
                    return false;
                scanf("%d", &n);
                int i, j;
                for (i=1; i<=n; i++)
                {
                    for (j=i; j<=n; j++)
                        scanf("%d", &mend[i][j]);
                }
                return true;
            }


            void Solve ()
            {
                int i, j;
                memset(f, 0, sizeof(f));
                for (i=1; i<=n; i++)
                {
                    f[i] = INT_MAX;
                    for (j=0; j<i; j++)
                    {
                        if ( f[j] + mend[j+1][i] + c < f[i] )
                            f[i] = f[j] + mend[j+1][i] + c;
                    }
                }
                printf("%d\n", f[n]);
            }

            int main ()
            {
                while ( Input() )
                {
                    Solve ();
                }

                return 0;
            }
            posted on 2008-01-28 14:45 quxiao 閱讀(473) 評論(0)  編輯 收藏 引用 所屬分類: ACM
            久久综合久久伊人| 国产91色综合久久免费分享| 99热热久久这里只有精品68| 国产精品青草久久久久婷婷 | 精品国产综合区久久久久久| 国产香蕉97碰碰久久人人| 日韩中文久久| 久久亚洲AV成人无码电影| 777久久精品一区二区三区无码| 久久人搡人人玩人妻精品首页| 精品久久久无码21p发布| 久久亚洲高清观看| 久久精品国产亚洲av麻豆图片| 亚洲午夜精品久久久久久人妖| 中文字幕无码精品亚洲资源网久久| 2022年国产精品久久久久| 伊人色综合久久天天网| 欧美精品一区二区精品久久| 伊人久久综合无码成人网| 久久久精品国产亚洲成人满18免费网站 | 久久久久人妻精品一区二区三区 | 久久香综合精品久久伊人| 久久青青草原精品国产软件| 国产午夜精品理论片久久影视| 午夜精品久久久内射近拍高清| 久久91亚洲人成电影网站| 精产国品久久一二三产区区别| 久久人妻少妇嫩草AV无码蜜桃| 麻豆精品久久精品色综合| 国产午夜福利精品久久2021 | 久久久久久亚洲精品不卡 | 国产精品久久久天天影视香蕉| 72种姿势欧美久久久久大黄蕉| 亚洲精品白浆高清久久久久久 | 久久777国产线看观看精品| 色综合久久无码五十路人妻 | 热久久国产精品| 久久精品中文无码资源站| 亚洲第一极品精品无码久久| 无遮挡粉嫩小泬久久久久久久| 热re99久久6国产精品免费|