zoukankan      html  css  js  c++  java
  • hnoi 2003 消防局的设立

    这题太难了,树形dp根本不会

    推荐一个树形dp的题解

    http://www.cnblogs.com/QWsin/p/5306197.html

    附上我抄的代码

     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <iostream>
     4 #include <algorithm>
     5 #include <cstring>
     6 #include <cmath>
     7 using namespace std;
     8 const int N=1010;
     9 const int INF=999999999;
    10 int g[N][N],dp[N][5],n,x;
    11 int main()
    12 {
    13     scanf("%d",&n);
    14     for(int i=2;i<=n;i++)
    15     {
    16         scanf("%d",&x);
    17         g[x][i]=1;
    18     }
    19     for(int i=n;i>=1;i--)
    20     {
    21         int x1=INF,x2=INF;
    22         dp[i][0]=1;
    23         for(int j=1;j<=n;j++)
    24         {
    25             if(g[i][j])
    26             {
    27                 dp[i][0]+=dp[j][4];
    28                 dp[i][3]+=dp[j][2];
    29                 dp[i][4]+=dp[j][3];
    30                 x1=min(x1,dp[j][0]-dp[j][3]);
    31                 x2=min(x2,dp[j][1]-dp[j][2]);
    32             }
    33         }
    34         dp[i][1]=dp[i][4]+x1;
    35         dp[i][2]=min(dp[i][3]+x2,min(dp[i][0],dp[i][1]));
    36         dp[i][3]=min(dp[i][2],dp[i][3]);
    37         dp[i][4]=min(dp[i][3],dp[i][4]);
    38     }
    39     printf("%d
    ",dp[1][2]);
    40     return 0;
    41 }
  • 相关阅读:
    jquery $.ajax $.get $.post的区别
    浅析JQuery中的html(),text(),val()区别
    单词统计续
    第一阶段意见评论
    学习进度9
    第一阶段SCRUM冲刺10
    第一阶段SCRUM冲刺09
    单词统计
    第一阶段SCRUM冲刺08
    学习进度8
  • 原文地址:https://www.cnblogs.com/wzrdl/p/9788499.html
Copyright © 2011-2022 走看看