hdu3660 Alice and Bob's Trip 树形dp
来源:互联网 发布:mac输入法表情符号 编辑:程序博客网 时间:2024/04/28 05:56
dfs传三个参数,一个是当前截点,一个是当前路程和,一个是选择的类型。
当这个点不能选时就不再考虑这个点的值。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;#define maxn 1100000#define ll long longint n,L,R,num;int dp[maxn],vis[maxn];int val[maxn],next[maxn],first[maxn],b[maxn];void build(int x,int y,int z){ num++; b[num]=y; next[num]=first[x]; first[x]=num; val[num]=z;}void dfs(int u,int from,int dep){ vis[u]=1; int v,tmp,maxv=0,flag; if(!first[u]) { dp[u]=0; return; } if(dep==0) dp[u]=-1; else dp[u]=0x3f3f3f3f; for(int i=first[u];i;i=next[i]) { v=b[i]; if(vis[v]) continue; dfs(v,from+val[i],dep^1); if(dp[v]==-1||dp[v]==0x3f3f3f3f) { continue; } tmp=from+val[i]+dp[v]; if(tmp>=L&&tmp<=R) { if(dep) { dp[u]=min(dp[u],tmp-from); } else { dp[u]=max(dp[u],tmp-from); } } }}void solve(){ dfs(0,0,0);}void init(){ memset(first,0,sizeof(first)); memset(val,0,sizeof(val)); memset(dp,0,sizeof(dp)); memset(vis,0,sizeof(vis)); num=0;}int main(){ int a,b,c; while(~scanf("%d%d%d",&n,&L,&R)) { init(); for(int i=1;i<n;i++) { scanf("%d%d%d",&a,&b,&c); build(a,b,c); } solve(); if(dp[0]>=L&&dp[0]<=R) { printf("%d\n",dp[0]); } else printf("Oh, my god!\n"); } return 0;}
0 0
- hdu3660 Alice and Bob's Trip 树形dp
- [HDU] 3660 Alice and Bob's Trip -- 树形DP?
- uva 1484 Alice and Bob's Trip (树形dp)
- hdu - 3660 - Alice and Bob's Trip(树形dp)
- UVALive 5088 Alice and Bob's Trip(树形DP)
- 树形dp-hdu-3660-Alice and Bob's Trip
- hdu 3660 Alice and Bob's Trip(树形DP)
- UVA 1484 - Alice and Bob's Trip(树形DP)
- uva 1484 - Alice and Bob's Trip(树形dp)
- UVA 1484 Alice and Bob's Trip (树形dp)
- UVA1484 Alice and Bob's Trip(树形dp)
- UVALive 5088 Alice and Bob's Trip(树形DP)
- Uva 1484 Alice and Bob's Trip(树形dp)
- uva1484 Alice and Bob's Trip (树形dp)
- uva-1484(hdu-3660) Alice and Bob's Trip 听说是树形dp
- hdoj 3660 Alice and Bob's Trip(树dp)
- HDU 3660 Alice and Bob's Trip
- hdoj 3660 Alice and Bob's Trip
- UVA1473 - Dome of Circus
- Linux内核配置--蓝牙与WIFI
- 在Unity项目中使用Git
- 视觉设计师
- 经验总结30--sqlserver新建用户
- hdu3660 Alice and Bob's Trip 树形dp
- 开源企业IM-免费企业即时通讯-ENTBOOST V1.1版本发布
- Python 正则表达式验证带分隔符的数字
- [leetcode] Wildcard Matching
- cocos2dx开发中的lua继承与覆盖C++方法
- date datetime java。util。Date java。sql。date
- 命令顺序不正确。 服务器响应为: Error: need EHLO and AUTH first
- CSS3制作文字半透明倒影效果
- emit信号发送结构体