首页 > 其他分享 >CF--800--D

CF--800--D

时间:2022-12-24 13:56:20浏览次数:32  
标签:now ch const -- CF long int 800

关键

解决掉孩子的前提下,能不能解决自己。
用一个w[i]数组记录一下孩子们的最大值,然后和l[i]和r[i]进行比较就可以了

代码

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int M=2e5+5;
const int inf=1e9+1;

inline int read(){
    int x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
    return x*f;
}

int h[M],ne[M],e[M],tot;
void add(int from,int to) {
    e[++tot]=to;  ne[tot]=h[from];  h[from]=tot;
}

int l[M],r[M],w[M],ans;
void dfs(int now) {
    for(int i=h[now];i;i=ne[i]) {
        int to=e[i];
        dfs(to);
        w[now]+=w[to];
    }
    if(w[now]>r[now])w[now]=r[now];
    else if(w[now]<l[now])w[now]=r[now],ans++;
}
//解决掉孩子的情况下能不能顺带解决自己
//可以的话就不需要加上
//脑子还是不行

signed main() {
    int TT=read();
    while(TT--) {
        int n=read();
        for(int i=1;i<=n;i++)w[i]=h[i]=0;
        tot=ans=0;
        for(int i=2;i<=n;i++) {
            int x=read();
            add(x,i);
        }
        for(int i=1;i<=n;i++)l[i]=read(),r[i]=read();
        dfs(1);
        cout<<ans<<endl;
    }
    return 0;
}

标签:now,ch,const,--,CF,long,int,800
From: https://www.cnblogs.com/basicecho/p/17002811.html

相关文章

  • Visual FoxPro
    第1章VisualFoxPro基础VisualFoxPro是关系型数据库管理系统的典型代表之一。其中的VisualFoxPro6.0是一个可运行于windows平台之上的32位数据库管理系统。1.1......
  • whctf2017_note_sys
    whctf2017_note_sys最近太颓废了,zikh师傅上南京参加比赛了恭喜获得第五名,我太菜了,只能膜拜大佬。><,在学习一下vmpwn吧,正好zikh师傅写的一篇保护漏洞利用主要就是利......
  • CAN接口电路
    1. CAN总线简介 (1)半双工通信 (2)传输速率<1M,通信距离<10km               2. CAN收发芯片  (1)常用的5VCAN收发芯片:TJ1014  ......
  • Normal No More
    下午的效率是最高的哦,不要浪费了呐。追いかけていた守るべきもの,There'sasunshineinmymind.明日も晴れるかな。不得不说某易的翻译质量是真的高,英文句号不外......
  • 2022.12.24 动态规划练习
    洛谷P5858「SWTR-03」GoldenSword题目背景小E不幸在一场战斗中失去了他的金宝剑。题目描述制造一把金宝剑需要\(n\)种原料,编号为\(1\)到\(n\),编号为\(i\)的......
  • 实验6
    4.实验任务4:文件简单应用#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>intmain(){FILE*fp;charch;intcount=0;fp......
  • linux 常用操作
    maven 环境变量exportM2_HOME=/data/maven/apache-maven-3.6.3exportCLASSPATH=$CLASSPATH:$M2_HOME/libexportPATH=$PATH:$M2_HOME/binjdkaptinstallo......
  • 注册页面 register
    7.注册页面register由于大部分都会,我就不花时间敲了,我直接敲注册界面注册页面名称说明注册专区registerarea注册内容reg-form错误的error成功......
  • 软件工程
    必考的数据流图绘制工资管理系统根据程序流程图画程序流图,转换规则,环形复杂度的计算设计测试用例简答题什么是白盒测试软件生命周期的组成部分单元测试软件危机的......
  • HZOJ 发愤涂墙 动态规划
    题面:解题思路: 找到递推规律:f[i]=f[i-1]+f[i-2]代码:#include<iostream>#include<algorithm>usingnamespacestd;intmain(){longlongn;cin>>n;......