BZOJ 1024: [SCOI2009]生日快乐 dfs
题目链接:
http://www.lydsy.com/JudgeOnline/problem.php?id=1024
题意:
题解:
http://www.cnblogs.com/ljh2000-jump/p/6063364.html
直接搜索每次横着切还是竖着切,同时均分成多少块。因为每个人的面积相等,所以注意一下,切成两半后必须要保证两边分成的块数之比要等于面积之比,仔细想想就可以想通了
dfs为什么取两种的最大值嘞 这两个是一个状态下的 一个产生 另一个就是必然
因为对于当前长为x的矩形, 在长度为x1*i 上分成i块 就必须在剩下的x-x1*i 上分成num-i块。 否则, 上面分的和下面分的就不一样长了 , 不能保证每块面积相等
说好的裸搜索 看了很久才懂点 菜的无可救药了
代码:
1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 #define MS(a) memset(a,0,sizeof(a)) 5 #define MP make_pair 6 #define PB push_back 7 const int INF = 0x3f3f3f3f; 8 const ll INFLL = 0x3f3f3f3f3f3f3f3fLL; 9 inline ll read(){ 10 ll x=0,f=1;char ch=getchar(); 11 while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} 12 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} 13 return x*f; 14 } 15 // 16 const int maxn = 1e5+10; 17 18 19 double dfs(double x,double y,int num){ // 需要分成num块,且矩形长宽分别为x,y 20 if(num == 1){ 21 return max(x,y)/min(x,y); 22 } 23 24 double ans1,ans2,ans=INF; 25 for(int i=1; i<=num/2; i++){ // 枚举横着或者竖着分成i份 26 double x1 = x/num, y1 = y/num; 27 ans1 = max(dfs(x1*i,y,i),dfs(x1*(num-i),y,num-i)); 28 ans2 = max(dfs(x,y1*i,i),dfs(x,y1*(num-i),num-i)); 29 ans = min(ans,min(ans1,ans2)); 30 } 31 return ans; 32 } 33 34 int main(){ 35 int x,y,n; 36 cin >> x >> y >> n; 37 38 printf("%.6lf\n",dfs(x,y,n)); 39 40 return 0; 41 }
转载于:https://www.cnblogs.com/yxg123123/p/6827674.html
BZOJ 1024: [SCOI2009]生日快乐 dfs相关推荐
- bzoj 1024 [SCOI2009]生日快乐
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1955 Solved: 1395 [Submit][Sta ...
- BZOJ 1024 SCOI2009 生日快乐 暴力搜索
奇怪以前做了却没写题解..强行爆搜保平安..CSDN不支持普通编辑器编辑的博客转换成MarkDown的? 看到n<=10,可以联想到O(n!)的算法,大概就是暴力(brute force)的搜索 ...
- BZOJ 1024: [SCOI2009]生日快乐
1024: [SCOI2009]生日快乐 Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕.现在包括windy,一共有 N 个人来分 ...
- bzoj 1024 [SCOI2009]生日快乐——模拟
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1024 可以枚举这边放多少块.那边放多少块. 注意精度.不要每次用x*y/base算有多少块, ...
- BZOJ.1024.[SCOI2009]生日快乐(记忆化搜索)
题目链接 搜索,枚举切的n-1刀. 对于长n宽m要切x刀,可以划分为若干个 长n'宽m'要切x'刀 的子问题,对所有子问题的答案取max 对所有子问题的方案取min 就是当前状态答案. 这显然是会有很 ...
- BZOJ-1024 生日快乐 DFS+一丝sb的数学思考
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1948 Solved: 1391 [Submit][Statu ...
- BZOJ1024 SCOI2009生日快乐
1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1846 Solved: 1315 [ Submit][ ...
- 【搜索】[SCOI2009] 生日快乐 BZOJ 1024
[SCOI2009]生日快乐 BZOJ 1024 Time Limit: 1 Sec Memory Limit: 162 MB Description windy的生日到了,为了庆祝生日,他的朋友们 ...
- bzoj 1024 生日快乐 暴力搜索
bzoj 1024 生日快乐 传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1024 Description windy的生日到了,为了庆祝生 ...
最新文章
- 结构型模式---适配器模式
- 《C和C++程序员面试秘笈》——1.9 如何理解C++是面向对象化的,而C是面向过程化的...
- JAVA知识总结目录
- listbox icon
- python按键盘上哪个键运行_python根据键盘输入进行相应操作
- 【每日一题】8月17日题目精讲-[SCOI2009]生日礼物
- 用java写的教职工信息管理系统_基于Java的教师信息管理系统的设计与实现论文.doc...
- Zabbix 3.0 配置企业微信报警(注册---测试)
- 机器学习--线性回归(LinearRegression)
- Maven学习总结(44)——Maven构建时生命周期及其常用集成命令详解
- JSON Web Token(缩写 JWT) 目前最流行的跨域认证解决方案
- win10改计算机用户名,win10如何改成自己想要的文件夹用户名?
- 安装 tensorflow 环境
- 学会提问pdf_原来只要1分钟,Word、PPT、PDF文件就能随意互相转换,快学学
- java 分组求和函数_java8 怎么精简分组求和
- VMware Workstation 12激活码
- 国际象棋渲染测试软件,C4D结合Octane Render渲染器制作三维国际象棋建模渲染教程 含中英文字幕...
- 证明费马最后定理的英国数学家,终获2016阿贝尔奖
- latex语法_【研创基地科研实训】关于举办第27期“LaTeX使用技巧交流分享会” 线上科研实训交流活动的通知...
- Vlan 单线复用之复式二层住宅网络改造实操案例(一)
热门文章
- AD采样的平均值滤波
- 【XLL 框架库函数】 Excel/Excel12f
- C# 文本操作类 Trim() 和Replace()的用法小例子
- java 蓝桥杯算法训练 P0501
- Flume Source
- mysql数据库单用户_SQLServer数据库之SqlServer数据库单用户模式无法删除的处理
- (01)System Verilog 程序数据采集
- QGIS2.18二次开发环境搭建--番外篇
- 截取年月日在hana中怎么写_获取Sting类型格式-日期中的年月日
- pulsar 容量_[Apache Pulsar] 企业级分布式消息系统-Pulsar入门基础