设为首页 加入收藏

TOP

HDU 4274 Spy's Work(12年长春 树形DP)
2015-11-21 01:06:02 来源: 作者: 【 】 浏览:3
Tags:HDU 4274 Spy' Work 12年 长春 树形

题目:给出一棵树,给出一些子树的权值关系,问是否矛盾

?


初始对于所有结点以及子树的下限为1,上限可能不确定

然后通过给出的不等式去更新上下界,之后进行树形DP,通过孩子的下界更新父节点的下界

再判断是否矛盾

注意当前节点当个的权值下限为1,该节点的下限为孩子下界的和+1


[cpp]
#include??
#include??
#include??
#include??
#include??
#include??
#include??
#include??
#define inf 110000000??
#define M 10005??
#define N 10005??
#define Min(a,b) ((a)<(b)?(a):(b))??
#define Max(a,b) ((a)>(b)?(a):(b))??
#define pb(a) push_back(a)??
#define mem(a,b) memset(a,b,sizeof(a))??
#define LL long long??
#define MOD 1000000007??
using namespace std;?
struct Node{?
??? int v,next;?
}edge[N*2];?
int n,start[N],tot;?
int up[N],low[N];?
void addedge(int u,int v){?
??? edge[tot].v=v;?
??? edge[tot].next=start[u];?
??? start[u]=tot++;?
}?
void _addedge(int u,int v){?
??? addedge(u,v);?
??? addedge(v,u);?
}?
bool ans;?
void dfs(int u,int pre){?
??? if(ans) return;?
??? if(up[u]!=-1&&low[u]>up[u]){ans=true;return;}?
??? int tmp=0;?
??? int leaf=1;?
??? for(int i=start[u];i!=-1;i=edge[i].next){?
??????? int v=edge[i].v;?
??????? if(v==pre) continue;?
??????? dfs(v,u);?
??????? leaf=0;?
??????? tmp+=low[v];?
??? }?
??? if(leaf) return;?
??? low[u]=max(tmp+1,low[u]);?
??? if(up[u]!=-1&&low[u]>up[u]) ans=true;?
}?
int main(){?
??? while(scanf("%d",&n)!=EOF){?
??????? tot=0;mem(start,-1);?
??????? for(int i=2;i<=n;i++){?
??????????? int u;?
??????????? scanf("%d",&u);?
??????????? _addedge(u,i);?
??????? }?
??????? int m;?
??????? for(int i=1;i<=n;i++){low[i]=1;up[i]=-1;}?
??????? scanf("%d",&m);?
??????? for(int i=0;i ??????????? int u,w;?
??????????? char str[5];?
??????????? scanf("%d%s%d",&u,str,&w);?
??????????? if(str[0]=='<') up[u]=w-1;?
??????????? else if(str[0]=='>') low[u]=w+1;?
??????????? else low[u]=up[u]=w;?
??????? }?
??????? ans=false;?
??????? dfs(1,0);?
??????? puts(ans?"Lie":"True");?
??? }?
??? return 0;?
}?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 2411 Mondriaan's Dream(.. 下一篇poj 2822 & hdu 4280 <平面图..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: