题意:有一颗树,每个点上有 \(b_i\) 东西,从叶子往上的汇率是 \(1:1\),从父亲往下的汇率是 \(k:1\),求能否使每个点的东西都不少于 \(a_i\)。

我们发现,从上往下肯定是不划算的,我们一定优先从下往上。而且一条边只经过一次,因为给 \(a\) 个拿回 \(b\) 个会导致总量减少,是不优的。可以通过退流得到最优答案。

而因为我们不需要最小化交易次数,所以我们允许交易过程中出现负数,因为先给出再补足和先补足再给出是等价的。假设当前方案是 \(b\rightarrow a\),\(c\rightarrow b\),而在中间过程中 \(b\) 出现了负数。但是 \(b\rightarrow a\) 是 \(a\) 和 \(b\) 所属的树的唯一一次交集,也就是两边是独立的,我们就完全可以先让 \(c\rightarrow b\) 先完成不会有影响。

那么,就有显然的贪心策略。从叶子开始,如果当前点不足,就向上面申请得到东西,所有多出来的不论青红皂白全部给到上面。不需要避免节点的负数,正常计算,最终看点 \(1\) 是否满足要求。

typedef long long ll;
ll n,p[100005],k[100005];
ll A[100005],B[100005];
__int128 a[100005],b[100005];
vt<int>vv[100005];
inline void dfs(int x,int p){
for(auto j:vv[x])if(j!=p){
dfs(j,x);
}
if(b[x]<a[x]&&p!=0){
__int128 res=a[x]-b[x];
b[p]-=res*k[x];b[x]+=res;
if(b[p]<(-1e18)){
cout<<"NO"<<endl;
exit(0);
}
}else if(p!=0){
b[p]+=(b[x]-a[x]);
}
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
rp(i,n)cin>>B[i];
rp(i,n)cin>>A[i];
rp(i,n)a[i]=A[i],b[i]=B[i];
rep(i,2,n){
cin>>p[i]>>k[i];
vv[p[i]].pb(i);
}
dfs(1,0);
rp(i,n)if(b[i]<a[i]){
cout<<"NO"<<endl;
return 0;
}
cout<<"YES"<<endl;
return 0;
}
//Crayan_r

最新文章

  1. 如何静态添加toolbar到datagrid
  2. ansible 自动化(3)
  3. C语言使用宏实现2个变量的交换
  4. 成为Android高手必须掌握的28大项内容和10个建议
  5. Fedora 19安装Fcitx输入法并安装搜狗输入法资源包
  6. xode 中文乱码处理
  7. Broadcast详解
  8. [每日一题] OCP1z0-047 :2013-08-28 DELETE..........................................................160
  9. 关于CSS各种选择器,还有各种引入样式表的区别,import导入样式表,在介绍一些伪类选择器
  10. 交换知识 VLAN VTP STP 单臂路由
  11. Java日期操作工具类
  12. Django入门开发之数据模型01
  13. npm版本安装问题
  14. Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) Problem A - B
  15. Andrew Ng-ML习题答案1
  16. JZOJ1517. 背包问题
  17. dp背包之01背包poj2184
  18. LeetCode——3Sum
  19. 《用 Python 学微积分》笔记 3
  20. 在swift工程调用第三方库,Bridging导入头文件提示not found解决办法

热门文章

  1. Windows下使用VSCode搭建IDA Python脚本开发环境
  2. Django连接数据库(mysql)与Django ORM实操(增删改查) 前端页面
  3. TIE: A Framework for Embedding-based Incremental Temporal Knowledge Graph Completion 增量时序知识图谱补全论文解读
  4. 构建SpringCloud网关服务
  5. 【FAQ】申请Health Kit权限的常见问题及解答
  6. 沁恒微(WCH)CH395/392配置使用,代码指南 网路接口芯片 CH395 CH392
  7. 2022CSP-J线上游记
  8. cookie设置失败
  9. vulnhub靶场之BUFFEMR: 1.0.1
  10. 迁移学习(MixMatch)《MixMatch: A Holistic Approach to Semi-Supervised Learning》