【JZOJ 3861】【JSOI2014】支线剧情2
来源:互联网 发布:通州梨园淘宝城拆了吗 编辑:程序博客网 时间:2024/06/02 11:20
Description
Solution
显然的树形DP,
设
设
有三种情况,
1. 当前点存档,子树没有存档,
2. 当前点存档,子树只有一个存档,
3. 当前点存档,子树有一个存档,其他的点想存档要从根走下来,
情况1,3比较好做,先考虑,转移显然,每个儿子要转移一个min上来,
情况2在计算完1,3后再单独计算,
复杂度:
Code
#include <iostream>#include <cstdio>#include <cstdlib>#define fo(i,a,b) for(int i=a;i<=b;i++)#define efo(i,q) for(int i=A[q];i;i=B[i][0])using namespace std;typedef long long LL;const int N=1e6+500;int read(int &n){ char ch=' ';int q=0,w=1; for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar()); if(ch=='-')w=-1,ch=getchar(); for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;}int n,m;int B[2*N][3],A[N],B0;struct qqww{ int s;}a[N];LL f[N],g[N];void link(int q,int w,int e){ B[++B0][0]=A[q],A[q]=B0,B[B0][1]=w,B[B0][2]=e; B[++B0][0]=A[w],A[w]=B0,B[B0][1]=q,B[B0][2]=e;}int dfsf(int q,int fa){ efo(i,q)if(B[i][1]!=fa)a[q].s+=dfsf(B[i][1],q),g[q]+=g[B[i][1]]+a[B[i][1]].s*B[i][2]; return (a[q].s=max(a[q].s,1));}void dfs(int q,LL e,int fa){ LL t=e; efo(i,q)if(B[i][1]!=fa) { dfs(B[i][1],e+B[i][2],q); t+=min(g[B[i][1]]+B[i][2]*a[B[i][1]].s,f[B[i][1]]); } f[q]=t; efo(i,q)if(B[i][1]!=fa) { LL t1=min(g[B[i][1]]+B[i][2]*a[B[i][1]].s,f[B[i][1]]); f[q]=min(f[q],t-t1+f[B[i][1]]-e); }}int main(){ int q,w,e; read(n); fo(i,1,n) { read(q); fo(j,1,q)read(w),read(e),link(i,w,e); } dfsf(1,0); dfs(1,0,0); // fo(i,1,n)printf("%d %lld %lld\n",i,f[i],g[i]);printf("\n"); printf("%lld\n",f[1]); return 0;}
0 0
- 【JSOI2014】【JZOJ 3861】支线剧情2
- 【JZOJ 3861】【JSOI2014】支线剧情2
- 【JSOI2014】支线剧情2
- 【JZOJ3861】【JSOI2014】支线剧情2
- [JZOJ3861]【JSOI2014】支线剧情2
- 【JSOI2014】支线剧情
- BZOJ3876 [Ahoi2014&Jsoi2014]支线剧情
- 3876: [Ahoi2014&Jsoi2014]支线剧情
- bzoj3876 [Ahoi2014&Jsoi2014]支线剧情
- 【jzoj3861】【JSOI2014】【支线剧情2 】【树形动态规划】
- BZOJ3876: [Ahoi2014&Jsoi2014]支线剧情(上下界费用流)
- [上下界有源汇最小费用可行流] BZOJ 3876: [Ahoi2014&Jsoi2014]支线剧情
- bzoj3876 [Ahoi2014&Jsoi2014]支线剧情(有源汇有上下界最小费用流)
- bzoj-3876 支线剧情
- bzoj3876【Ahoi2014】支线剧情
- [bzoj3876]支线剧情
- [bzoj3876][AHOI2014]支线剧情
- BZOJ3876/AHOI2014支线剧情
- 刘贺稳专家解析2017年百度电脑下拉框对SEO排名推广的重大作用
- iPhone各屏幕尺寸 分辨率 及适配
- Linked List Cycle
- bzoj 2693: jzptab 莫比乌斯反演
- 智能家庭网络的革命时代已经来临
- 【JZOJ 3861】【JSOI2014】支线剧情2
- 从零开始成为一名开源程序员,其实只需要九步!
- C中各关键字总结
- 啊哈,算法学习笔记(2)
- 怎么导入vitamio并能在自己的程序中使用
- 【oracle】批量更改所有表的同一字段类型
- Hibernate Validator验证注解说明
- 服务器文件自动打包备份到电脑,可以通过flashfxp及电脑的计划任务实现
- python 生成0矩阵