poj 1463 Strategic game 树型dp,最小点集覆盖
来源:互联网 发布:北京 补牙 知乎 编辑:程序博客网 时间:2024/04/30 05:00
题目:http://poj.org/problem?id=1463
题意:给一颗树,用最少的点把所有的边覆盖了。可以用动态规划,也可以用最小点集覆盖(最裸的题目)。
很水的一个题目,又是一个树的遍历,哎!去网上搜的树型DP。。。。。。。。。既然已经做了,就写个解题吧!
解题:这个题目和poj3659差不多,这个是覆盖边,那个是覆盖点(poj3659解题报告),现在只说用dp的解法。
每个点有两个状态:
1、利用点i去覆盖和它相连的边,dp[i][1]表示;
2、不利用点i去覆盖和它相连的边,dp[i][0]表示;
状态转移方程是:
dp[i][1]+=min(dp[v][0],dp[v][1]);
dp[i][0]+=dp[v][1];(v是i的孩子)。
代码:
#include <stdio.h>#include <string.h>#include <iostream>#include <vector>using namespace std;#define N 10005struct Node{ int v,next;}node[N<<1];int headnod[N];bool vist[N];int num,ans,k;int dp[N][3];void Add(int u,int v){ node[k].v=v; node[k].next=headnod[u]; headnod[u]=k++;}void init(){ int i,j,x,y,x_num; k=1; memset(headnod,0,sizeof(headnod)); memset(vist,true,sizeof(vist)); for(i=0;i<num;i++) { scanf("%d:(%d)",&x,&x_num); for(j=0;j<x_num;j++) { scanf("%d",&y); Add(x,y); Add(y,x); } }}void dfs(int key){ vist[key]=false; dp[key][0]=0; dp[key][1]=1; for(int i=headnod[key];i;i=node[i].next) { int v=node[i].v; if(vist[v]) { dfs(v); dp[key][0]+=dp[v][1]; dp[key][1]+=min(dp[v][0],dp[v][1]); } }}int main(){ //freopen("/home/acm/JPY/input.txt","r",stdin); while(cin>>num) { init(); dfs(1); cout<<min(dp[1][1],dp[1][0])<<endl; } return 0;}
- poj 1463 Strategic game 树型dp,最小点集覆盖
- POJ 1463 Strategic game 最小点覆盖,树形DP
- poj 1463 Strategic game(最小点覆盖树形DP)
- POJ 1463 Strategic game 最小点覆盖集(树形dp)
- POJ 1463 Strategic game (树形dp 树的最小点覆盖 水)
- POJ 1463 Strategic game (二分图最小覆盖点(匈牙利算法) 或 树形DP)
- poj 1463 Strategic game 树的最小点覆盖
- POJ 1463 Strategic game (树形DP,放置点覆盖边)
- Hdu1054 Strategic Game(最小覆盖点集)
- poj 1463 Strategic game(树形dp,最小边覆盖集)
- POJ 1463 Strategic game(树形DP-树上的点集覆盖模型)
- Uva 1292 - Strategic game 树形dp 最小点覆盖
- hdu1054 Strategic Game(最小覆盖点-树形dp)
- hdu 1054 Strategic Game 最小点覆盖集
- HDU--1054--Strategic Game【最小点覆盖】
- hdu 1054 Strategic Game 最小点覆盖
- hdu 1054 Strategic Game(最小点覆盖)
- LA Strategic Game 【最小点覆盖】
- 数据结构之顺序栈的操作(C语言)
- 进程、线程、任务的区别是什么
- QSqlDatabase类
- opencv深入学习(2)--Scalar类型
- C++ 代码创建虚拟机调用java方法
- poj 1463 Strategic game 树型dp,最小点集覆盖
- MFC里面的响应对话框里的Edit控件的几种方法
- 优秀程序员的十个习惯
- 模拟QQ聊天窗口
- Web.config详解
- CentOS6.2+Apache+Mysql安装Redmine
- java中的工厂模式
- IOS学习笔记28—SQLite3第三方库之FMDB
- TC SRM 552 DIV1 100PT(数论)