BZOJ 4753 二分+树形DP
思路:
先二分答案
f[x][j]表示在x的子树里选j个点
f[x][j+k]=max(f[x][j+k],f[x][j]+f[v[i]][k]);
初始化
x!=0 -> f[x][1]=p[x]-s[x]*mid
x=0 -> f[x][0]=0
类似4033的那样转移 看似O(n^3)实际O(n^2)
加一个二分 复杂度O(能过)
//By SiriusRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int N=2505; int n,K,s[N],p[N],r[N],first[N],next[N],v[N],tot,size[N]; double f[N][N],mid; void add(int x,int y){v[tot]=y,next[tot]=first[x],first[x]=tot++;} void dfs(int x){if(x){size[x]=1;f[x][1]=p[x]-s[x]*mid;}else size[0]=0,f[0][0]=0;for(int i=first[x];~i;i=next[i]){dfs(v[i]);for(int j=size[x];j>=0;j--){for(int k=size[v[i]];k>=0;k--){f[x][j+k]=max(f[x][j+k],f[x][j]+f[v[i]][k]);}}size[x]+=size[v[i]];} } int main(){memset(first,-1,sizeof(first));scanf("%d%d",&K,&n);for(int i=1;i<=n;i++){scanf("%d%d%d",&s[i],&p[i],&r[i]);add(r[i],i);}double l=0,r=0x3f3f3f;while(r-l>1e-5){for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)f[i][j]=-0x3f3f3f;mid=(l+r)/2;dfs(0);if(f[0][K]>0)l=mid;else r=mid;}printf("%.3lf\n",l); }
转载于:https://www.cnblogs.com/SiriusRen/p/6637468.html
BZOJ 4753 二分+树形DP相关推荐
- 【题解】hdu 3586 Information Disturbing 二分 树形dp
题目描述 Information Disturbing Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Jav ...
- 吉吉王国(二分+树形dp)
吉吉王国 题意: n个点,m个边,有边权,现在要求叶子节点无法与1号点连通,要求切断的总长度不能超过m,且切断的最长的长度尽可能断 题解: 题意的前半部分可以确定是树形dp,后半部分可以确定为是二分 ...
- bzoj 1369: Gem 树形dp
题目大意 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小.N<=10000 题解 我们可以 ...
- P4383-[八省联考2018]林克卡特树【wqs二分,树形dp】
正题 题目链接:https://www.luogu.com.cn/problem/P4383 题目大意 nnn个点的一棵树,要求删除kkk条边然后接上kkk条边权为000的边后形成的树上选择一对(p, ...
- BZOJ 2651 城市改建 树形DP+模拟?
题意 给一颗树,删除一条边再加一条边,使它仍为一颗树且任意两点间的距离的最大值最小. 题目数据范围描述有问题,n为1或重建不能使任意两点距离最大值变小,可以输出任意答案. 分析 删除一条边后会使它变成 ...
- BZOJ 2133 切割(树形DP,树上背包)大概是本题全网第一篇题解 >_<【BZOJ 修复工程】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 BZOJ 2133 切割这道题全网搜不到任何一篇题解 >_< 看评测记录也没有几个人AC- ...
- BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)
BZOJ orz MilkyWay天天做sxt! 首先可以树形DP:\(f[i][j][0/1]\)表示\(i\)个点的子树中,黑高度为\(j\),根节点为红/黑节点的最小红节点数(最大同理). 转移 ...
- UOJ #131 BZOJ 4199 luogu P2178【NOI2015】品酒大会 (后缀自动机、树形DP)
UOJ #131 BZOJ 4199 luogu P2178[NOI2015]品酒大会 (后缀自动机.树形DP) 水是水,但是写出了不少问题,因此写一发博客. https://www.luogu.or ...
- 两种解法-树形dp+二分+单调队列(或RMQ)-hdu-4123-Bob’s Race
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4123 题目大意: 给一棵树,n个节点,每条边有个权值,从每个点i出发有个不经过自己走过的点的最远距离 ...
最新文章
- workerman连接mysql_workerman Mysql使用
- PyQt5教程——组件 Ⅱ(八)
- mysql 基本操作(二)
- 【研究院】滴滴研究院,都在做什么
- 毕业一年,疫情之下的95后工作:有的退而求次,有的忐忑前行
- C# 容器重用避免GC 的论证
- git拉取项目以及提交项目
- 直接用自己服务器做图床可以吗_图床有什么用,图片放自己的服务器上不可以吗?...
- 自己动手架设linux下Web服务器(图)4
- 投影仪幕布增益_当贝投影带你看投影仪使用幕布和白墙的区别实测!
- sed个人习惯用法总结
- Kubernetes入门——Longhorn简介
- 常用的C++ STL
- 如何用vb制作“简单”的表白软件
- 基于qt和mysql的地铁线路系统_课内资源 - 基于QT实现的可视化地铁换乘查询系统...
- IDA Pro、OllyDbg、LordPE和UltraEdit简单实用实验
- 第八章 机器人语音交互 课后作业
- Keil MDK5 STM32F401CCU6开发环境配置
- ps 自动生成html代码,ps怎么生成html网页文件 PS生成html网页文件的具体教程
- update与fixedupdate检测键盘输入的出现的问题