luogu P4160 [SCOI2009]生日快乐
考虑因为每个人的蛋糕体积要相等,如果切了一刀,那么要使得分当前蛋糕的人根据分成的两部分蛋糕的体积分成两部分人,所以假设当前有n人,切的这一刀要是在x或y的kn(k∈N+,k∈[1,n])处,然后两边分别有k和n−k个人分,所以分治做下去救星了
更多内容详见代码
#include<bits/stdc++.h>
#define LL long long
#define il inline
#define re register
#define db double
#define eps (1e-5)
using namespace std;
il LL rd()
{
LL x=0,w=1;char ch=0;
while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
db dfs(int n,db x,db y)
{
if(x<y) swap(x,y);
if(n==1) return x/y;
db an=1e18;
for(int i=1;i<=n/2;i++) an=min(an,max(dfs(i,x/(db)n*(db)i,y),dfs(n-i,x/(db)n*(db)(n-i),y)));
for(int i=1;i<=n/2;i++) an=min(an,max(dfs(i,x,y/(db)n*(db)i),dfs(n-i,x,y/(db)n*(db)(n-i))));
return an;
}
int main()
{
db x=rd(),y=rd();
int n=rd();
if(x<y) swap(x,y);
printf("%.6lf\n",dfs(n,x,y));
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理