bzoj1024 [SCOI2009]生日快乐

1024: [SCOI2009]生日快乐

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 1801  Solved: 1276

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

 

题意:显然的

题解:面积一样,但形状不一定一样,想通这点就简单了。

面积可以算出来,因为最多分10块,而且每次不是横切就是竖切,所以对于每一块,枚举怎么切,再枚举每边分多少块,显然可以通过枚举的块数来算出每块的新的长和宽,递归下去。

显然,我们最多枚举N-1次,每次枚举怎么切(2种),再枚举分多少块,复杂度不会太高

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cstdlib>
 4 #include <cmath>
 5 #include <deque>
 6 #include <vector>
 7 #include <queue>
 8 #include <iostream>
 9 #include <algorithm>
10 #include <map>
11 #include <set>
12 #include <ctime>
13 using namespace std;
14 typedef long long LL;
15 typedef double DB;
16 #define For(i, s, t) for(int i = (s); i <= (t); i++)
17 #define Ford(i, s, t) for(int i = (s); i >= (t); i--)
18 #define Rep(i, t) for(int i = (0); i < (t); i++)
19 #define Repn(i, t) for(int i = ((t)-1); i >= (0); i--)
20 #define rep(i, x, t) for(int i = (x); i < (t); i++)
21 #define MIT (2147483647)
22 #define INF (1000000001)
23 #define MLL (1000000000000000001LL)
24 #define sz(x) ((int) (x).size())
25 #define clr(x, y) memset(x, y, sizeof(x))
26 #define puf push_front
27 #define pub push_back
28 #define pof pop_front
29 #define pob pop_back
30 #define ft first
31 #define sd second
32 #define mk make_pair
33 inline void SetIO(string Name) {
34     string Input = Name+".in",
35     Output = Name+".out";
36     freopen(Input.c_str(), "r", stdin),
37     freopen(Output.c_str(), "w", stdout);
38 }
39 
40 DB n, m;
41 int k;
42 
43 inline void Input() {
44     cin>>n>>m>>k;
45 }
46 
47 inline DB Search(DB n, DB m, int k) {
48     if(n < m) swap(n, m);
49     if(k == 1) return n/m;
50     DB Ret = 1.0*INF, x, A, B;
51     //Heng
52     x = n/k;
53     For(i, 1, k-1) {
54         A = Search(x*i, m, i);
55         B = Search(x*(k-i), m, k-i);
56         Ret = min(Ret, max(A, B));
57     }
58     
59     // Shu
60     x = m/k;
61     For(i, 1, k-1) {
62         A = Search(n, x*i, i);
63         B = Search(n, x*(k-i), k-i);
64         Ret = min(Ret, max(A, B));
65     }
66     
67     return Ret;
68 }
69 
70 inline void Solve() {
71     DB Ans = Search(n, m, k);
72     printf("%.6lf\n", Ans);
73 }
74 
75 int main() {
76     SetIO("1024");
77     Input();
78     Solve();
79     return 0;
80 }
View Code

 

转载于:https://www.cnblogs.com/StupidBoy/p/4760102.html

OpenGL实现生日快乐 opengl实现生日快乐小动画,c++实现,课程设计 立即下载

相关推荐

DoDAF2.0UAF1.0UPDMIBDRhapsodyMagicDrawSysML

参考:fr=ge_alafr=ge_ala。

计算机辅助工程 1374

bzoj 1034: [ZJOI2008]泡泡堂BNB

1034: [ZJOI2008]泡泡堂BNB Description   第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂。每一场比赛前,对阵双方的教练向组委会提交一份参赛选手的名单,决定了选手上场的顺序,一经确定,不得修改。比赛中,双方的一号选手,二号选手……,n号选手捉对厮杀,共...

weixin_30892987的博客 147

VS2022 中 std::mutex 静态初始化陷阱:一次诡异崩溃的排查记录

VS2022中使用std::mutex时遇到的静态初始化陷阱问题。该问题源于VS2022 17.4版本为std::mutex添加constexpr支持后,全局静态初始化可能导致系统资源未就绪时锁失效或崩溃。文章分析了问题现象、影响范围,并提供了解决方案。最后给出了排查清单和核心建议

qq_34552942的博客 921

【DFS】BZOJ1024(SCOI2009)[生日快乐]题解

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

ZigZagK的博客 702

BZOJ1024 [SCOI2009]生日快乐

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

weixin_34278190的博客 143

bzoj1024: [SCOI2009]生日快乐 DFS

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

WJSZMRX 981

1034: [ZJOI2008]泡泡堂BNB

Description   第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂。每一场比赛前,对阵双方的教练向组委会提交一份参赛选手的名单,决定了选手上场的顺序,一经确定,不得修改。比赛中,双方的一号选手,二号选手……,n号选手捉对厮杀,共进行n场比赛。每胜一场比赛得2分,平一...

ailiao2015的博客 220

BZOJ1024:[SCOI2009]生日快乐

1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1894  Solved: 1347[Submit][Status][Discuss] Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人

Loi_Seavot的博客 3446

bzoj1024: [SCOI2009]生日快乐

题面在这里 大暴力。。。 首先考虑一个问题:如果一个矩形只能向一个方向切n-1刀,让每个矩形的长宽之比最大值最小,应该怎么切? 显然是平均切成n份。 但是这里不要求只能一个方向,我们可以对于一个矩形枚举它切在哪里,递归地处理切成的两个矩形就好了。 /************************************************************* Pro

juruo? juruo! 437

[BZOJ1024][SCOI2009]生日快乐

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

weixin_30512043的博客 116

bzoj1024 [SCOI2009]生日快乐

bzoj1024 [SCOI2009]生日快乐 原题链接 题解 为了弥补信心做的。 这两天被各种火题踩爆。 开始以为是DP,然后习惯性的上CJOJ搜了下,在搜索专题里。。。 简单dfs不解释。 Code // It is made by XZZ #include<cstdio> #include<algorithm> using namespace std; #def...

weixin_30337157的博客 88

bzoj1024[SCOI2009]生日快乐

bzoj1024[SCOI2009]生日快乐 题意: 一个矩形蛋糕边长分别为X和Y,须切成N块面积相等的蛋糕。每一切只能平行于一块蛋糕的任意一边,并且必须把这块蛋糕切成两块。因此必须切 N-1 次。求 N块蛋糕的长边短边的比值的最大值的最小值。X,Y≤10000,N≤10 题解: 爆搜,dfs(x,y,cnt)表示要把长为x宽为y的蛋糕切成cnt块,因为只能切在x/cnt或y/cnt的倍...

weixin_34072159的博客 87

bzoj1024】[SCOI2009]生日快乐

1024: [SCOI2009]生日快乐 Time Limit:1 SecMemory Limit:162 MBSubmit:2372Solved:1717[Submit][Status][Discuss] Description   windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N...

anzhi7214的博客 74

【搜索】[SCOI2009] 生日快乐 BZOJ 1024

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

Jiangzh_MZOI 1165

bzoj-1024 [SCOI2009]生日快乐

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

aln1541的博客 123

BZOJ 1024:[SCOI2009]生日快乐【DFS】

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

aiweiluan5095的博客 105

bzoj 1024[SCOI2009]生日快乐 - DFS

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

141

[bzoj1024][SCOI2009]生日快乐【暴力】

【题目链接】   http://www.lydsy.com/JudgeOnline/problem.php?id=1024 【题解】   暴力每一刀是横着切还是竖着切并枚举两侧的块数。   复杂度分析:     设 g[i]g[i] 为 n=in=i 时的复杂度。     于是有:      g[i]=1 (i=1)g[i]=1 (i=1)...

dizhengyue1902的博客 91

BZOJ1024 SCOI2009生日快乐

1024: [SCOI2009]生日快乐 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1846  Solved: 1315 [Submit][Status][Discuss] Description windy的生日到了,为了庆祝生日,他的朋友们帮他买了一个边长分别为 X 和 Y 的矩形蛋糕。现在包括windy,一共有 N 个人

毒液哥的专栏 402
上一篇: bzoj1023 [SHOI2008]cactus仙人掌图
下一篇: bzoj1025 [SCOI2009]游戏
anmob303090
博客等级 码龄11年 3粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值