给定N个点,每个点都有一个唯一的前驱结点(点1为大boss),每个点的实际权值是子节点的求和值。现在给出某些点的权值的估算(> , = , < ),问这些估算是否会有冲突,现在保证每个点的权值是大于等于1的。

分析: 判断标准为每个点的上下界,初始化为INF和1,每个点上下界可以根据给出的信息,或者搜索出的信息进行更新,如果出现上界小于下界的情况就说明矛盾了。

计算过程中数据量竟然没有超过int................

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
# define INF 0x7FFFFFFF
using namespace std;
int n,m,flag;
struct Guess {
int high,low;
char c;
} guess[10001]; struct node {
int s,e,next;
} ed[10001];
int head[10001],num;
void init() {
memset(head,-1,sizeof(head));
num = 0;
flag = 1;
for(int i=0; i<=n; i++) {
guess[i].low = 1;
guess[i].high = INF;
}
}
void add(int s,int e) {
ed[num].s = s;
ed[num].e = e;
ed[num].next = head[s];
head[s] = num++;
} void cmp(int i,int h,int l) {
int hh = min(guess[i].high ,h);
int ll = max(guess[i].low,l);
if(hh < ll) flag = 0;
guess[i].high = hh;
guess[i].low = ll;
} void dfs(int v0) {
if(flag == 0) return ;
int h = INF,l = 1;
for(int i=head[v0]; i != -1; i= ed[i].next) {
int e = ed[i].e;
dfs(e);
l += guess[e].low;
}
cmp(v0,h,l);
}
int main() {
int t,a,b;
char c;
while(scanf("%d",&n) != EOF) {
init();
for(int i=2; i<=n; i++) {
scanf("%d",&t);
add(t,i);
}
scanf("%d",&m);
int h,l;
for(int i=0; i<m; i++) {
scanf("%d %c %d",&a,&c,&b);
h = INF;
l = 1;
if(c == '=') {
l = b; h = b;
}
if(c == '<') h = b - 1;
if(c == '>') l = b + 1;
cmp(a,h,l);
}
dfs(1);
if(flag) printf("True\n");
else printf("Lie\n");
}
return 0;
}

HDU 4274 Spy's Work (树 DFS)的更多相关文章

  1. HDU 1298 T9(字典树+dfs)

    http://acm.hdu.edu.cn/showproblem.php?pid=1298 题意:模拟手机9键,给出每个单词的使用频率.现在给出按键的顺序,问每次按键后首字是什么(也就是要概率最大的 ...

  2. Hdu 4274 Spy&#39;s Work

    Spy's Work Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  3. hdu 4274 Spy&#39;s Work(水题)

    Spy's Work Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  4. HDU 4274 Spy's Work (树形DP)

    题意 给定一棵树,给出一些子树的权值关系,问是否矛盾(初始所有结点的下限为1) 思路 设lmin和lmax表示题目给定的限制范围,默认为[1..oo]:amin和amax表示实际符合要求的范围.从根节 ...

  5. HDU 4274 Spy's Work (树形DP,模拟)

    题意: 给定一棵树,每个节点代表一个员工,节点编号小的级别就小,那么点1就是boss了.接下来给出对m个点的限制,有3种符号分别是op=“大于/小于/等于”,表示以第i个点为根的子树所有人的工资之和  ...

  6. S - Query on a tree HDU - 3804 线段树+dfs序

    S - Query on a tree HDU - 3804   离散化+权值线段树 题目大意:给你一棵树,让你求这棵树上询问的点到根节点直接最大小于等于val的长度. 这个题目和之前写的那个给你一棵 ...

  7. HDU 4605 Magic Ball Game (dfs+离线树状数组)

    题意:给你一颗有根树,它的孩子要么只有两个,要么没有,且每个点都有一个权值w. 接着给你一个权值为x的球,它从更节点开始向下掉,有三种情况 x=w[now]:停在此点 x<w[now]:当有孩子 ...

  8. HDU 5692 线段树+dfs序

    Snacks Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  9. HDU 1010 Tempter of the Bone --- DFS

    HDU 1010 题目大意:给定你起点S,和终点D,X为墙不可走,问你是否能在 T 时刻恰好到达终点D. 参考: 奇偶剪枝 奇偶剪枝简单解释: 在一个只能往X.Y方向走的方格上,从起点到终点的最短步数 ...

随机推荐

  1. 1030 - Image Is Everything (贪心)

    Your new company is building a robot that can hold small lightweight objects. The robot will have th ...

  2. 关于git的文件内容冲突解决

    虽然以前我很怕git冲突,包括以前的版本控制器SVN上的冲突,但是昨天我决定好好的面对它,不去怕它,下面是我的解决过程... 话说一天的早上,我和同事(称为A)都同步了网络上的代码,然而A在中途提交了 ...

  3. android后台截屏实现(1)--源码编译

    前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少.经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在ja ...

  4. js中this的指向

    在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧. JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式: 1. ...

  5. ActiveReport 9手把手搭建环境及实战

    本文借鉴葡萄城空间产品,纯属分享,无任何营利目的 下载ActiveReports 9 专业版 打开下面的网站,点击立即下载,请您填写真实电子邮件地址,以获取ActiveReports产品试用版---系 ...

  6. 初学Java ssh之Spring 第一篇

    之前虽然毕业前实习的工作是使用的C# .NET语言,但是,毕业后还是果断应聘Java.虽然自己对Java的理解不如C#深入,只是对基础知识比较熟悉,但还是义无返顾了··· 虽然应聘经历比较坎坷,但最终 ...

  7. 解读CSS文本(text)样式

    通过文本属性,您可以改变文本的颜色.字符间距.对齐文本.装饰文本.文本缩进,等等. color: 该属性用于改变文本的颜色,注意区分background-color. Line-height: 该属性 ...

  8. php 如何写入、读取word,excel文档

    如何在php写入.读取word文档 <? //如何在php写入.读取word文档 // 建立一个指向新COM组件的索引 $word = new COM("word.applicatio ...

  9. linux 常用压缩工具快速指南

    .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压 ...

  10. (转载)C# 编程 使用可空类型

    转载出处为://https://msdn.microsoft.com/zh-cn/library/2cf62fcy(vs.90).aspx#Anchor_1 C#可以为 null 的类型可以表示基础类 ...