【树形DP---未解决】hdu 3660
来源:互联网 发布:网页美工属于web什么 编辑:程序博客网 时间:2024/06/05 08:47
题意:给出n个点,n-1条边,问从节点0到最远的子叶的距离满足L<=dis<=R,且Bob总是选最大的,Alice总是选最小的,问最后能否满足要求。
方法:树形DP,dis[u]数组表示0节点到当前节点u的距离,dp[u]数组表示最远的子叶节点到u节点的满足要求的距离,最后dp[0]就是答案。这dp妙就妙在利用了的dfs回溯,从最远子节点到0节点进行dp
贴一个TLE代码,有空a了他!
#include <list>#include <map>#include <set>#include <queue>#include <string>#include <deque>#include <stack>#include <algorithm>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <limits.h>#include <time.h>#include <string.h>using namespace std;#define LL long long#define PI acos(-1.0)#define MAX INT_MAX#define MIN INT_MIN#define eps 1e-8#define FRE freopen("a.txt","r",stdin)#define MOD 1000000007#define N 500010int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a>b?b:a;}struct edge{ int to; int val;};vector<edge> v[N];int dis[N],dp[N];int l,r;void dfs(int u,int who){ int i,j; if(v[u].size()==0){dp[u]=0;return ;} dp[u]= who?0:MAX; if(dis[u]>r)return ; for(i=0;i<v[u].size();i++){ int to=v[u][i].to; int w=v[u][i].val; dis[to]=dis[u]+w; dfs(to,!who); if(dis[u]+w+dp[to]<=r && dis[u]+w+dp[to]>=l){ if(who) dp[u]=max(dp[u],dp[to]+w); else dp[u]=min(dp[u],dp[to]+w); } }}int main(){ int n; while(~scanf("%d%d%d",&n,&l,&r)){ int i,j,k; for(i=0;i<=n;i++)v[i].clear(); for(i=1;i<n;i++){ int a,b,c; scanf("%d%d%d",&a,&b,&c); edge tmp; tmp.to=b; tmp.val=c; v[a].push_back(tmp); } dis[0]=0; dfs(0,1); if(dp[0]<=r && dp[0]>=l)printf("%d\n",dp[0]); else printf("Oh, my god!\n"); } return 0;}
- 【树形DP---未解决】hdu 3660
- hdu 3660 Realtime Status(树形dp)
- 树形dp hdu Computer
- 【树形DP】hdu 1520
- hdu 1054 #树形DP
- hdu 4303 树形dp
- hdu 4340 树形dp
- hdu 4340 树形DP
- HDU 4340 树形DP
- hdu 4267 树形dp
- hdu 4383 树形dp
- HDU 2196 树形dp
- HDU 2196 树形dp
- hdu 1054 树形dp
- HDU 4276 树形DP
- hdu 2196 树形dp
- hdu 4044 树形dp
- hdu 1520-树形DP
- 数据库的内连接和外连接
- Jquery datatable
- C#中的接口
- [usaco]单源最短路径:3.3.5 Sweet Butter
- this指针可以这样理解
- 【树形DP---未解决】hdu 3660
- VC下OpenGL配置
- Android开发之消息处理机制(二)——消息循环
- WebLogic报错Unable to access the selected application. Exception in AppMerge flows' progression
- 创建linux tomcat+mysql
- 《营销管理》-第2章-审视营销管理的基础结构
- java实现远程桌面监控
- 用OutLook发手机短信
- string,char,char*,char a[], sizeof,strlen(),str.length()...