hdu 4274 Spy's Work(水题)
Spy's Work
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1266 Accepted Submission(s): 388
To get some information about ICPC, I have learned a lot about it. ICPC has N staffs now (numbered from 1 to N, and boss is 1), and anybody has at most one superior. To increase the efficiency of the whole company, the company contains N departments and the
ith department is led by the ith staff. All subordinates of the ith staff are also belong to the ith department.
Last week, we hire a spy stealing into ICPC to get some information about salaries of staffs. Not getting the detail about each one, the spy only gets some information about some departments: the sum of the salaries of staff s working for the ith department
is less than (more than or equal to) w. Although the some inaccurate information, we can also get some important intelligence from it.
Now I only concerned about whether the spy is telling a lie to us, that is to say, there will be some conflicts in the information. So I invite you, the talented programmer, to help me check the correction of the information. Pay attention, my dear friend,
each staff of ICPC will always get a salary even if it just 1 dollar!
The first line is an integer N. (1 <= N <= 10,000)
Each line i from 2 to N lines contains an integer x indicating the xth staff is the ith staff's superior(x<i).
The next line contains an integer M indicating the number of information from spy. (1 <= M <= 10,000)
The next M lines have the form like (x < (> or =) w), indicating the sum of the xth department is less than(more than or equal to) w (1 <= w <=100,000,000)
5
1
1
3
3
3
1 < 6
3 = 4
2 = 2 5
1
1
3
3
3
1 > 5
3 = 4
2 = 2
Lie
True
pid=4273" target="_blank">4273
pid=4270" target="_blank">4270
4269然后告诉你某棵子树权值和的范围。然后问你有没有矛盾。
#include<algorithm>
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
const int maxn=10010;
typedef long long ll;
const ll INF=1e14;
int fa[maxn];
ll ns[maxn],nb[maxn],sz[maxn],ss[maxn],sb[maxn];
int main()
{
int n,i,x,m,w,flag;
char op[10]; while(~scanf("%d",&n))
{
fa[1]=flag=0;
for(i=1;i<=n;i++)
{
sz[i]=1;
ns[i]=-INF,nb[i]=INF;
ss[i]=sb[i]=0;
}
for(i=2;i<=n;i++)
{
scanf("%d",&x);
fa[i]=x;
}
scanf("%d",&m);
for(i=1;i<=m;i++)
{
scanf("%d%s%d",&x,op,&w);
if(op[0]=='=')
nb[x]=ns[x]=w;
else if(op[0]=='<')
nb[x]=min(nb[x],(ll)w-1);
else
ns[x]=max(ns[x],(ll)w+1);
}
for(i=n;i>=1;i--)
{
if(flag)
break;
ns[i]=max(ns[i],sz[i]);
if(ns[i]>nb[i]||nb[i]<=ss[i])
flag=1;
ns[i]=max(ns[i],ss[i]+1);
if(ns[i]>nb[i])
flag=1;
sz[fa[i]]+=sz[i];
ss[fa[i]]+=ns[i];
sb[fa[i]]+=nb[i];
}
if(flag)
printf("Lie\n");
else
printf("True\n");
}
return 0;
}
hdu 4274 Spy's Work(水题)的更多相关文章
- Hdu 4274 Spy's Work
Spy's Work Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HDU 2096 小明A+B --- 水题
HDU 2096 /* HDU 2096 小明A+B --- 水题 */ #include <cstdio> int main() { #ifdef _LOCAL freopen(&quo ...
- [HDU 2602]Bone Collector ( 0-1背包水题 )
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 水题啊水题 还给我WA了好多次 因为我在j<w[i]的时候状态没有下传.. #includ ...
- hdu 2117:Just a Numble(水题,模拟除法运算)
Just a Numble Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- hdu 2050:折线分割平面(水题,递归)
折线分割平面 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- hdu 2044:一只小蜜蜂...(水题,斐波那契数列)
一只小蜜蜂... Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s): Accepte ...
- HDU 4706 Children's Day (水题)
Children's Day Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- hdu 1201:18岁生日(水题,闰年)
18岁生日 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- hdu 2025:查找最大元素(水题,顺序查找)
查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
随机推荐
- perl 函数回调 引用$client->run(sub {$client->sync});
匿名函数引用: [root@wx03 wx]# perl a1.pl CODE(0x2077b30) test [root@wx03 wx]# cat a1.pl $ref= sub {return ...
- 基于visual Studio2013解决面试题之0909移动星号
题目
- 基于visual Studio2013解决面试题之0905子串数量
题目
- java反射小样例
package reflect; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExc ...
- 杭电 1711 Number Sequence
Number Sequence Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- python3语法小记(二)列表 和 元组
列表(list): 列表就像一个线性容器,但是比C++的 lis t扩展多得多 列表里的元素可以是相同类型,也可以包含各种类型,比如列表里嵌套另一个列表 >>> L1 = [1,2, ...
- 奇葩的UI引用LayoutInflater.from问题
今收到BUG一枚,一个页面的EditText的风格变为了系统默认(系统经过定制,风格和普通的不同) 经检查xml无任何不妥,最终问题出在LayoutInflater.from上. 如果LayoutIn ...
- nodejs+socket.io即时聊天实例
在这之前你应该先安装好 Node.js,安装过程不再讲解 首先在你的电脑上创建一个新目录,姑且命名为 chat,然后在该目录创建两个文件,分别是 app.js 和 index.html. app.js ...
- HDU 2152 Fruit (母函数)
# include<stdio.h> # include <algorithm> # include <string.h> # include <iostre ...
- u-boot的nand驱动写过程分析
从命令说起,在u-boot输入下列命令: nand write 40008000 0 20000 命令的意思是将内存0x40008000开始的部分写入nand,从nand地址0开始写,写入长度是0x2 ...