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

            Sephiroth's boring days!!!

            Love just for you.

            動(dòng)態(tài)規(guī)劃-皇宮看守

            【問(wèn)題描述】

            太平王世子事件后,陸小鳳成了皇上特聘的御前一品侍衛(wèi)。

            皇宮以午門為起點(diǎn),直到后宮嬪妃們的寢宮,呈一棵樹(shù)的形狀;某些宮殿間可以互相望見(jiàn)。大內(nèi)保衛(wèi)森嚴(yán),三步一崗,五步一哨,每個(gè)宮殿都要有人全天候看守,在不同的宮殿安排看守所需的費(fèi)用不同。

            可是陸小鳳手上的經(jīng)費(fèi)不足,無(wú)論如何也沒(méi)法在每個(gè)宮殿都安置留守侍衛(wèi)。

            幫助陸小鳳布置侍衛(wèi),在看守全部宮殿的前提下,使得花費(fèi)的經(jīng)費(fèi)最少。

            【數(shù)據(jù)輸入】

            輸入數(shù)據(jù)由文件名為INPUT.TXT的文本文件提供。輸入文件中數(shù)據(jù)表示一棵樹(shù),描述如下:

            第1行 n,表示樹(shù)中結(jié)點(diǎn)的數(shù)目。

            第2行至第n+1行,每行描述每個(gè)宮殿結(jié)點(diǎn)信息,依次為:該宮殿結(jié)點(diǎn)標(biāo)號(hào)i(0<i<=n),在該宮殿安置侍衛(wèi)所需的經(jīng)費(fèi)k,該邊的兒子數(shù)m,接下來(lái)m個(gè)數(shù),分別是這個(gè)節(jié)點(diǎn)的m個(gè)兒子的標(biāo)號(hào)r1,r2,...,rm。

            對(duì)于一個(gè)n(0 < n <= 1500)個(gè)結(jié)點(diǎn)的樹(shù),結(jié)點(diǎn)標(biāo)號(hào)在1到n之間,且標(biāo)號(hào)不重復(fù)。

            【數(shù)據(jù)輸出】

            輸出到OUTPUT.TXT文件中。輸出文件僅包含一個(gè)數(shù),為所求的最少的經(jīng)費(fèi)。

             

             

             

             

             

             

            輸入數(shù)據(jù)示例  輸出數(shù)據(jù)示例

                  25

            【分析】

            分別用f[i][0]表示i點(diǎn)放看守,f[i][1]表示i點(diǎn)不放看守i點(diǎn)被兒子監(jiān)視,f[i][2]表示i點(diǎn)不放看守i點(diǎn)被父節(jié)點(diǎn)監(jiān)視三個(gè)情況下的最小費(fèi)用。

            f[i][0]=所有子節(jié)點(diǎn)t的f[t][0],f[t][1],f[t][2]中最小的一個(gè)的合+k[i]

            f[i][1]=某個(gè)子節(jié)點(diǎn)放看守+其他節(jié)點(diǎn)的f[t][0],f[t][1]中最小的一個(gè)的合

            f[i][2]=所有子節(jié)點(diǎn)的f[t][1]的合

              1: #include <stdio.h>
            
              2: #include <iostream>
            
              3: #define maxn 1510
            
              4: #define MAXINT 10000000
            
              5: using namespace std;
            
              6: 
            
              7: int son[maxn][maxn];
            
              8: int m[maxn];
            
              9: int n,x;
            
             10: int k[maxn];
            
             11: int tem[maxn];
            
             12: bool ro[maxn];
            
             13: int v;
            
             14: int f[maxn][3];
            
             15: 
            
             16: void dp(int x)
            
             17: {
            
             18:     if (f[x][0]) return;
            
             19:     for (int i=1;i<=m[x];++i)
            
             20:     {
            
             21:         int t=son[x][i];
            
             22:         dp(t);
            
             23:         f[x][0]+=min(f[t][0],min(f[t][1],f[t][2]));
            
             24:         f[x][2]+=f[t][1];
            
             25:     }
            
             26:     f[x][0]+=k[x];
            
             27:     memset(tem,0,sizeof(tem));
            
             28:     int tot=0;
            
             29:     for (int i=1;i<=m[x];++i)
            
             30:     {
            
             31:         int t=son[x][i];
            
             32:         tem[i]=min(f[t][0],f[t][1]);
            
             33:         tot+=tem[i];
            
             34:     }
            
             35:     f[x][1]=MAXINT;
            
             36:     for (int i=1;i<=m[x];++i)
            
             37:     {
            
             38:         int t=son[x][i];
            
             39:         if (tot-tem[i]+f[t][0]<f[x][1]) f[x][1]=tot-tem[i]+f[t][0];
            
             40:     }
            
             41: }
            
             42: 
            
             43: int main()
            
             44: {
            
             45:     freopen("guard.in","r",stdin);
            
             46:     freopen("guard.out","w",stdout);
            
             47:     
            
             48:     scanf("%d",&n);
            
             49:     for (int i=1;i<=n;++i)
            
             50:     {
            
             51:         scanf("%d",&x);
            
             52:         scanf("%d%d",&k[x],&m[x]);
            
             53:         for (int j=1;j<=m[x];++j)
            
             54:         {
            
             55:             scanf("%d",&son[x][j]);
            
             56:             ro[son[x][j]]=1;
            
             57:         }
            
             58:     }
            
             59:     for (int i=1;i<=n;++i)
            
             60:         if (!ro[i])
            
             61:         {
            
             62:             v=i;
            
             63:             break;
            
             64:         }
            
             65:     //for (int i=1;i<=n;++i)
            
             66:     //f[i][2]=f[i][1]=MAXINT;
            
             67:     dp(v);
            
             68:     printf("%d\n",min(f[v][0],f[v][1]));
            
             69:     return 0;
            
             70: }
            
             71: 

            posted on 2010-09-02 19:58 Sephiroth Lee 閱讀(1065) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 信息奧賽

            Feedback

            # re: 動(dòng)態(tài)規(guī)劃-皇宮看守 2011-05-03 16:54 dasfdf

            jhsajkldfasjkl;dfdsa  回復(fù)  更多評(píng)論   


            free counters
            久久亚洲日韩看片无码| 伊人久久大香线焦综合四虎| 久久精品国产亚洲5555| 99久久国产亚洲综合精品| 日产精品久久久久久久性色| 青青青青久久精品国产 | 伊人久久大香线蕉av不卡 | 久久久久国色AV免费观看| 日日狠狠久久偷偷色综合免费 | 99久久er这里只有精品18| 人人狠狠综合88综合久久| 日产精品久久久一区二区| 国产成人精品久久综合 | 久久狠狠爱亚洲综合影院| 久久精品无码一区二区三区| 久久人妻少妇嫩草AV蜜桃| 亚洲一本综合久久| 久久精品中文闷骚内射| 一级做a爰片久久毛片毛片| 国产成人久久AV免费| 97精品依人久久久大香线蕉97| 伊人久久免费视频| 2021少妇久久久久久久久久| 亚洲va中文字幕无码久久| 一本综合久久国产二区| 久久91精品综合国产首页| 91精品婷婷国产综合久久| 久久综合给合久久狠狠狠97色 | 国产精品九九久久免费视频 | 婷婷国产天堂久久综合五月| 青青草国产精品久久久久| 国产成人精品久久免费动漫| 人妻无码中文久久久久专区| 无码人妻少妇久久中文字幕蜜桃| 国产欧美久久久精品影院| 国产精品久久婷婷六月丁香| 精品国产乱码久久久久软件| 久久乐国产综合亚洲精品| 麻豆精品久久久久久久99蜜桃| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 无码人妻少妇久久中文字幕|