【BZOJ】1024: [SCOI2009]生日快乐(dfs)

http://www.lydsy.com/JudgeOnline/problem.php?id=1024

果然现在弱到连搜索都不会了么。。。。。

一直想二分。。。但是无论如何也推不出怎么划分。。。

QAQ

然后暴力搜索每一次割的时候左边右边各有几块或者上边下边各有几块就行了QAQ

#include <cstdio>
#include <cstring>
#include <cmath>
#include <string>
#include <iostream>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
#define pii pair<int, int>
#define mkpii make_pair<int, int>
#define pdi pair<double, int>
#define mkpdi make_pair<double, int>
#define pli pair<ll, int>
#define mkpli make_pair<ll, int>
#define rep(i, n) for(int i=0; i<(n); ++i)
#define for1(i,a,n) for(int i=(a);i<=(n);++i)
#define for2(i,a,n) for(int i=(a);i<(n);++i)
#define for3(i,a,n) for(int i=(a);i>=(n);--i)
#define for4(i,a,n) for(int i=(a);i>(n);--i)
#define CC(i,a) memset(i,a,sizeof(i))
#define read(a) a=getint()
#define print(a) printf("%d", a)
#define dbg(x) cout << (#x) << " = " << (x) << endl
#define error(x) (!(x)?puts("error"):0)
#define printarr2(a, b, c) for1(_, 1, b) { for1(__, 1, c) cout << a[_][__]; cout << endl; }
#define printarr1(a, b) for1(_, 1, b) cout << a[_] << '\t'; cout << endl
inline const int getint() { int r=0, k=1; char c=getchar(); for(; c<'0'||c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0'&&c<='9'; c=getchar()) r=r*10+c-'0'; return k*r; }

double dfs(double x, double y, int n) {
	if(n==1) return max(y/x, x/y);
	double ret=1e99;
	for1(i, 1, n>>1) {
		ret=min(ret, max(dfs(x/n*i, y, i), dfs(x/n*(n-i), y, n-i)));
		ret=min(ret, max(dfs(x, y/n*i, i), dfs(x, y/n*(n-i), n-i)));
	}
	return ret;
}

int main() {
	int x=getint(), y=getint(), n=getint();
	printf("%.6f", dfs(x, y, n));
	return 0;
}

  

 


 

 

Description

windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块蛋糕看起来漂亮,我们要求 N 块蛋糕的长边与短边的比值的最大值最小。你能帮助windy求出这个比值么?

Input

包含三个整数,X Y N。

Output

包含一个浮点数,保留6位小数。

Sample Input

5 5 5

Sample Output

1.800000

HINT

 

【数据规模和约定】 

100%的数据,满足 1 <= X,Y <= 10000 ; 1 <= N <= 10 。

 

Source

转载于:https://www.cnblogs.com/iwtwiioi/p/4103340.html

立创·庐山派-K230-CanMV(嘉楠勘智)开发板通过ATK-ESP8266实现图像识别数据无线传输至原子云 本文详细介绍了如何使用立创·庐山派-K230-CanMV开发板,通过ATK-ESP8266 WIFI模块实现图像识别数据的无线传输至原子云平台。内容包括硬件连接、软件环境搭建、AT指令控制、原子云连接及数据上传的全过程,并提供了实用的调试技巧和常见问题解决方案,为物联网应用开发提供了完整实践指南。 阅读详情

相关推荐

实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件

本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。

weixin_29313239的博客 433

BZOJ 1024:[SCOI2009]生日快乐DFS

1024:[SCOI2009]生日快乐 Time Limit 1 Sec Memory Limit 162 MB 【题目描述】   windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy ,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。windy主刀,每...

aiweiluan5095的博客 105

《YOLOv8:从入门到实战》报错解决 & 专栏答疑

《YOLOv8:从入门到实战》专栏上线后,部分同学在学习过程中提出了一些问题,笔者相信这些问题其他同学也有可能遇到。为了让大家可以更好地学习本专栏内容,笔者特意推出了该篇专栏答疑,针对同学们在学习过程中所提出的问题进行汇总记录,并不断实时更新,希望能够帮助到大家!🌈

小哥谈 1205

bzoj 1024[SCOI2009]生日快乐 - DFS

1024: [SCOI2009]生日快乐 Time Limit:1 SecMemory Limit:162 MB Description   windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。windy主刀,每一切只能平行于一块蛋糕的一边...

141

[BZOJ1024][SCOI2009][DFS]生日快乐

windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块蛋糕看起来漂亮,我们要求 N 块蛋糕的长边与短边的比值的最大值

gaotianyu1350的专栏 1209

BZOJ1024:[SCOI2009]生日快乐(DFS)

Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。 现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。 这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块蛋糕看起来漂亮,我们要...

weixin_33841503的博客 168

BZOJ1024 SCOI2009 生日快乐 DFS

题意:给定一个X*Y的长方形,每次可以平行长或宽切一刀,求切N-1次能得到的最小的N个子长方形中长宽比最大的值。 题解:因为N<=10,DFS乱搞就好 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #inclu...

a18700013354的博客 164

bzoj1024】 [SCOI2009]生日快乐 DFS

Descriptionwindy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。 windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块蛋糕看起来漂亮,我们要求 N 块蛋糕的长边

DQS的树洞 1402

BZOJ 1024 SCOI2009 生日快乐 DFS

题目大意:给定一块x*y的蛋糕,切n-1刀分成n块大小相同的块,只能平行于边界切,求长宽比最大值最小 虽然求最大值最小但是这题没必要二分答案……直接深搜就可以了 枚举切成的两块的面积比,横竖各切一次即可 本大爷读入读错了TLE半天……尼玛死的心都有啊 #include #include #include #include #include using namespace std; doub

世界 1756

BZOJ 1024: [SCOI2009]生日快乐 dfs

1024: [SCOI2009]生日快乐 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=1024 Description windy的生日到了,为了庆祝生日,他的朋友们...

weixin_34268169的博客 135

DFSBZOJ1024(SCOI2009)[生日快乐]题解

题目概述有一个边长分别为 xx 和 yy 的矩形蛋糕。现在一共有 nn 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块,共切 n−1n-1 次。要求 nn 块蛋糕的长边与短边的比值的最大值最小。求最小值。解题报告首先想到二分,但是并没有什么作用,因为并不知道长边或短边,枚举肯定是不行的。但是我们发现切的次数非常少,所以可以

ZigZagK的博客 702

bzoj1024: [SCOI2009]生日快乐 DFS

裸搜,每次把剩下的蛋糕分为

WJSZMRX 981

bzoj 1024: [SCOI2009]生日快乐(暴力dfs枚举所有情况)

1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2890 Solved: 2103 [Submit][Status][Discuss] Description   windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy ,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。windy主刀,每一切只能平行于一块蛋糕 的一边(任意一边),并且必须

雪的期许 1080

[BZOJ1024]SCOI2009 生日快乐|DFS

这种傻逼题竟然想不出怎么做。。。N这么小直接爆搜,dfs(x,y,n)表示x*y要切成n块,然后枚举切下去之后两边各分几块,这里又有切长边和切短边两种。。 #include #include #include using namespace std; int n,i; double x,y; double dfs(double x,double y,int k) { if (x>y) swap

Tag_king的专栏 735

Bzoj P1024 [SCOI2009]生日快乐___dfs

题目大意: nnn个人分一个x∗yx*yx∗y的蛋糕,每次切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块,通过切n−1n-1n−1次将蛋糕分成nnn份,要使得每份蛋糕的面积都相等,问此时nnn块蛋糕的长边与短边的比值的最大值最小是多少。 1&lt;=X,Y&lt;=10000;1&lt;=N&lt;=101 &lt;= X,Y &...

生如夏花之绚烂 276

[BZOJ1024][SCOI2009]生日快乐

[BZOJ1024][SCOI2009]生日快乐 试题描述 windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人来分这块大蛋糕,要求每个人必须获得相同面积的蛋糕。windy主刀,每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。这样,要切成 N 块蛋糕,windy必须切 N-1 次。为了使得每块...

weixin_30512043的博客 116
上一篇: 【BZOJ】1009: [HNOI2008]GT考试(dp+矩阵乘法+kmp+神题)
下一篇: 纪念伟大的sb错-noip滚粗
aocong4527
博客等级 码龄10年 6粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值