P3931 SAC E#1 - 一道难题 Tree(树dp)
发布日期:2021-06-30 10:31:59
浏览次数:2
分类:技术文章
本文共 855 字,大约阅读时间需要 2 分钟。
额,为什么这种题会在network-flow
的题单里啊…
可以跑网络流,但是明显树 d p dp dp就好了
对于 u u u的子树,要么让所有叶子节点到不了 u u u
要么所有叶子节点都能到 u u u(一条边都不割,割一部分一定不优)
所以 f [ u ] + = m i n ( v a l u − > s o n , f [ s o n ] ) f[u]+=min(val_{u->son},f[son]) f[u]+=min(valu−>son,f[son])
叶子节点除外
#includeusing namespace std;#define int long longconst int maxn = 3e6+10;struct edge{ int to,nxt,w;}d[maxn]; int head[maxn],cnt=1;void add(int u,int v,int w){ d[++cnt] = ( edge ){ v,head[u],w},head[u] = cnt;}int f[maxn],n,s;//f[i]表示是否能到达点ivoid dfs(int u,int fa){ int ans = 0,flag = 0; for(int i=head[u];i;i=d[i].nxt ) { int v = d[i].to; if( v==fa ) continue; dfs(v,u); flag = 1; ans += min( d[i].w,f[v] ); } if( flag ) f[u] = ans;}signed main(){ memset(f,0x3f,sizeof f ); cin >> n >> s; for(int i=1;i > l >> r >> w; add(l,r,w); add(r,l,w); } dfs(s,s); cout << f[s];}
转载地址:https://issue-is-vegetable.blog.csdn.net/article/details/115442461 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月17日 22时49分46秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
走进开源代码(一)
2019-04-30
走进开源代码(二)
2019-04-30
[转]深度剖析闪电网络
2019-04-30
听李天飞《大话西游》有感
2019-04-30
走进开源代码(三)
2019-04-30
Linux下开发Qt界面程序时命令行传参数的一个坑
2019-04-30
SourceInsight使用技巧(转)
2019-04-30
QT之旅——post 文件
2019-04-30
树莓派为连接不同Wifi分配固定IP的方法
2019-04-30
[转]Linux 下编译、安装、配置 QT
2019-04-30
新手教学看eMule 0.50a Xtreme 8.0设置
2019-04-30
如何在Linux使用Eclipse + CDT开发C/C++程序?
2019-04-30
Eclipse官网下载页面的Packages 和Developer Builds区别
2019-04-30
在CentOS 6.4安装Qt5.0.1
2019-04-30
深入浅出TCP之send和recv
2019-04-30
yum和apt-get的区别
2019-04-30
vim中文帮助的安装
2019-04-30
linux下获取所有文件夹和文件,支持nfs和xfs
2019-04-30
用分区魔术师把linux所占的分区删除后重写mbr
2019-04-30
软件架构师书籍
2019-04-30