博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
p4322 [JSOI2016]最佳团体
阅读量:6973 次
发布时间:2019-06-27

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

分析

我们不难发现这是一棵树

于是01分数规划然后树上dp即可

代码

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int n,m;int s[5000],p[5000],r[5000],siz[2505];double dp[2505][2505];vector
v[5000];inline void go(int x,double mid){ dp[x][1]=double(p[x]-s[x]*mid); siz[x]=1; for(int i=0;i
0;j--) for(int k=0;k<=siz[v[x][i]];k++) dp[x][j+k]=max(dp[x][j+k],dp[x][j]+dp[v[x][i]][k]); siz[x]+=siz[v[x][i]]; }}inline bool ck(double mid){ memset(dp,-10,sizeof(dp)); s[0]=p[0]=0; go(0,mid); return dp[0][m+1]>=0;}signed main(){ int i,j,k; scanf("%d%d",&m,&n); for(i=1;i<=n;i++){ scanf("%d%d%d",&s[i],&p[i],&r[i]); v[r[i]].push_back(i); } double le=0,ri=10000.0001; while(ri-le>0.0001){ double mid=(le+ri)/2; if(ck(mid))le=mid; else ri=mid; } printf("%0.3lf\n",le); return 0;}

转载于:https://www.cnblogs.com/yzxverygood/p/10357483.html

你可能感兴趣的文章
程序设计中的抽象和分层思想
查看>>
小工具---年级卫生评比
查看>>
POJ 1986 裸的LCA
查看>>
Linux块设备驱动详解
查看>>
PHP+AJAX 地区三级联动代码
查看>>
Docker学习笔记-(1)常用命令
查看>>
android NDK 学习笔记(1)
查看>>
tengine无法解析ssi报错 Nginx: unsafe URI detected while sending response
查看>>
关闭浏览器时退出登录
查看>>
《代码大全》阅读笔记-30-编程工具
查看>>
在 Visual Studio 中调试 XAML 设计时异常
查看>>
nginx前端负载,后端apache获取真实IP设置
查看>>
关于Repository、Autofac、DbContext简单例子
查看>>
CF1155E Guess the Root
查看>>
SSM框架的jar使用操作
查看>>
最近用到mysql和mybatis结合常用的知识点坐下整理
查看>>
redis入侵
查看>>
ArcGIS Server发布服务,报错001270
查看>>
连续子数组的最大和
查看>>
windows7下cmd命令窗口没有滚动条的解救方法
查看>>