• LA 2038 最少点覆盖


    题目链接:https://vjudge.net/problem/UVALive-2038

    题意:我看了原题,lrj的书上题意写错了,应该是最少点覆盖,当然可以用最大匹配去做,由于是树形的;

    可以树形DP;

    d[u][0] : u 结点 不放;

    d[u][1] : u 结点放;

     1 #include <bits/stdc++.h>
     2 
     3 using namespace std;
     4 
     5 const int maxn = 1500 + 5;
     6 int n;
     7 vector<int> G[maxn];
     8 
     9 int d[maxn][2];
    10 int p[maxn];
    11 
    12 int dfs(int u,int fa) {
    13     int d = G[u].size();
    14     for(int i=0;i<d;i++)
    15     {
    16         int v = G[u][i];
    17         if(v!=fa)
    18             dfs(v,p[v]=u);
    19     }
    20 }
    21 
    22 int dp(int cur,int f,int pa) {
    23     if(d[cur][f]>0)
    24         return d[cur][f];
    25     if(f==1) {
    26         d[cur][f] = 1;
    27         for(int i=0;i<G[cur].size();i++) {
    28             int v = G[cur][i];
    29             if(v!=pa)
    30             d[cur][f] +=min(dp(v,0,cur),dp(v,1,cur));
    31         }
    32     }
    33     else {
    34         for(int i=0;i<G[cur].size();i++) {
    35             int v = G[cur][i];
    36             if(v!=pa)
    37                 d[cur][f] +=dp(v,1,cur);
    38         }
    39     }
    40     return d[cur][f];
    41 }
    42 
    43 
    44 int main()
    45 {
    46     while(scanf("%d",&n)!=EOF) {
    47 
    48         memset(d,0,sizeof(d));
    49         for(int i=0;i<n;i++)
    50             G[i].clear();
    51         int u,v,num;
    52         for(int i=0;i<n;i++) {
    53             scanf("%d:(%d)",&u,&num);
    54             for(int j=0;j<num;j++) {
    55                 scanf("%d",&v);
    56                 G[u].push_back(v);
    57                 G[v].push_back(u);
    58             }
    59         }
    60 
    61         p[0] = -1;
    62         dfs(0,-1);
    63         printf("%d
    ",min(dp(0,0,-1),dp(0,1,-1)));
    64 
    65     }
    66     return 0;
    67 }
    View Code
  • 相关阅读:
    文件管理系统(JQuery插件+Ajax)
    十大Ajax框架
    WSS3.0开发你还在为写CAML痛苦吗?
    vue获取微博授权的URL
    微博三方登录原理
    阿里云短信服务
    JWT原理和COOKIE原理
    django数据库的ORM操作
    celery原理与组件
    生成微博授权URL
  • 原文地址:https://www.cnblogs.com/TreeDream/p/6792073.html
Copyright © 2020-2023  润新知