博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #530 (Div. 2)
阅读量:6097 次
发布时间:2019-06-20

本文共 861 字,大约阅读时间需要 2 分钟。

RANK :2252 题数 :3

补题:

思路:贪心 把权值放在祖先节点上 ,预处理 每个节点保存 他与他儿子中 权值最小值即可。

最后会有一些叶子节点依旧为 INF 权值按0算即可,然后其他的权值计算为 它 - 它父亲的。

注意判断时候会出现父亲比儿子大的这种非法情况。

#include
using namespace std;#define inf 0x7f7f7f7f#define ll long long#define maxn 123456ll fa[maxn],n,s[maxn],ans;int main(){ scanf("%lld",&n); for(int i=2; i<=n; i++) scanf("%lld",&fa[i]); for(int i=1; i<=n; i++) { scanf("%lld",&s[i]); if(s[i]==-1)s[i]=inf; } ans=s[1]; for(int i=2; i<=n; i++) s[fa[i]]=min(s[fa[i]],s[i]); for(int i=2; i<=n; i++) { if(s[i]==inf)s[i]=0; else { ans+=s[i]-s[fa[i]]; if(s[i]-s[fa[i]]<0) { printf("-1\n"); return 0; } } } printf("%lld\n",ans); return 0;}

  

 

转载于:https://www.cnblogs.com/SDUTNING/p/10234588.html

你可能感兴趣的文章
【算法学习笔记】61.回溯法 DFS SJTU OJ 1106 sudoku
查看>>
【算法学习笔记】86.栈 中缀表达式 SJTU OJ 1033 表达式计算
查看>>
项目总结31:Java字符串过滤特殊字符和表情符号
查看>>
标准Web系统的架构分层
查看>>
Vue.js——使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
查看>>
「小程序JAVA实战」小程序模板在外部页面引用(20)
查看>>
创建django项目
查看>>
lca最小公共祖先祖先
查看>>
-------第一讲----第一节-------------- 1 基本概念-----------------什么是数据结构--------------...
查看>>
优先队列 + 并查集 + 字典树 + 欧拉回路 + 树状数组 + 线段树 + 线段树点更新 + KMP +AC自动机 + 扫描线...
查看>>
理解DOM
查看>>
jquery的height()和javascript的height总结,js获取屏幕高度
查看>>
浅谈Iframe和FRAME的区别
查看>>
洛谷P4931 情侣?给我烧了!(加强版)(组合数学)
查看>>
C#串口通讯概念以及简单实现
查看>>
使用xtrabackup做数据库的增量备份
查看>>
ip地址的唯一性是如何保证的
查看>>
三十天学不会TCP,UDP/IP编程--MAC地址和数据链路层
查看>>
Silverlight专题(布局介绍) ---摘录
查看>>
第三章课后总结
查看>>