loj #2071. 「JSOI2016」最佳团体
正文
#2071. 「JSOI2016」最佳团体
题目描述
JSOI 信息学代表队一共有 NNN 名候选人,这些候选人从 111 到 NNN 编号。方便起见,JYY 的编号是 000 号。每个候选人都由一位编号比他小的候选人 RiR_iRi 推荐。如果 Ri=0R_i=0Ri=0,则说明这个候选人是 JYY 自己看上的。
为了保证团队的和谐,JYY 需要保证,如果招募了候选人 iii,那么候选人 RiR_iRi 也一定需要在团队中。当然了,JYY 自己总是在团队里的。每一个候选人都有一个战斗值 PiP_iPi,也有一个招募费用 SiS_iSi。JYY 希望招募 KKK 个候选人(JYY 自己不算),组成一个性价比最高的团队。也就是,这 KKK 个被 JYY 选择的候选人的总战斗值与总招募费用的比值最大。
输入格式
输入一行包含两个正整数 KKK 和 NNN。
接下来 NNN 行,其中第 iii 行包含三个整数 Si,Pi,RiS_i,P_i,R_iSi,Pi,Ri 表示候选人 iii 的招募费用,战斗值和推荐人编号。
输出格式
输出一行一个实数,表示最佳比值。答案保留三位小数。
样例
样例输入
1 2
1000 1 0
1 1000 1
样例输出
0.001
数据范围与提示
对于 100%100\%100% 的数据满足 $1≤K≤N≤2500, 0<Si,Pi≤104, 0≤Ri<i1 \leq K \leq N \leq 2500,\ 0< S_i,P_i \leq 10^4,\ 0 \leq R_i<i1≤K≤N≤2500, 0<Si,Pi≤104, 0≤Ri<i。$
#include<iostream> #include<cstdio> #include<cstring> #define maxn 2510 #define eps 0.00001 using namespace std; int K,n,head[maxn],num,s[maxn],p[maxn],r[maxn],sz[maxn]; double w[maxn],f[maxn][maxn]; struct node{int to,pre;}e[maxn*2]; void Insert(int from,int to){ e[++num].to=to; e[num].pre=head[from]; head[from]=num; } void dfs(int x){ sz[x]=1; for(int i=head[x];i;i=e[i].pre){ int to=e[i].to; dfs(to); sz[x]+=sz[to]; } } void dp(int x){ int tot=0; if(x)f[x][1]=w[x],tot=1; else f[x][0]=0; for(int i=head[x];i;i=e[i].pre){ int to=e[i].to; dp(to); tot+=sz[to]; for(int i=tot;i>=0;i--) for(int j=0;j<=sz[to]&&j<=i;j++) f[x][i]=max(f[x][i],f[x][i-j]+f[to][j]); } } bool check(double ans){ for(int i=1;i<=n;i++) w[i]=p[i]-ans*s[i]; memset(f,0xc2,sizeof(f)); dp(0); return f[0][K]>=0; } int main(){ scanf("%d%d",&K,&n); for(int i=1;i<=n;i++){ scanf("%d%d%d",&s[i],&p[i],&r[i]); Insert(r[i],i); } dfs(0); double l=0,r=10000; while(r-l>eps){ double mid=(r+l)*0.5; if(check(mid))l=mid; else r=mid; } printf("%.3lf",(r+l)*0.5); return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee