1. 程式人生 > >BZOJ 1024 SCOI 2009 生日快樂 深搜

BZOJ 1024 SCOI 2009 生日快樂 深搜

題目大意:有一塊蛋糕,長為X,寬為Y,現在有n個人來分這塊蛋糕,還要保證每個人分的蛋糕的面積相等。求一種分法,使得所有的蛋糕的長邊與短邊的比值的最大值最小。

思路:剛拿到這個題並沒有什麼思路。但是定睛一看,(n <= 10),額。。可以亂搞了。。。

直接爆搜就可以水過。傳三個引數,代表當前的長和寬,還有當前塊需要被分成幾塊,然後隨便亂搞就可以水過了。。

CODE:

#include <cstdio>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
using namespace std;

int X,Y,cnt;

double DFS(double x,double y,int step);

int main()
{
	cin >> X >> Y >> cnt;
	cout << fixed << setprecision(6) << DFS(X,Y,cnt) << endl;
	return 0;
}

double DFS(double x,double y,int step)
{
	if(step == 1) {
		if(x < y)	swap(x,y);
		return x / y;
	}
	double _x = x / step,re = 10000.0;
	for(int i = 1;i < step; ++i) {
		double temp = DFS(_x * i,y,i);
		temp = max(temp,DFS(x - _x * i,y,step - i));
		re = min(re,temp);
	}
	double _y = y / step;
	for(int i = 1;i < step; ++i) {
		double temp = DFS(x,_y * i,i);
		temp = max(temp,DFS(x,y - _y * i,step - i));
		re = min(re,temp);
	}
	return re;
}


相關推薦

BZOJ 1024 SCOI 2009 生日快樂

題目大意:有一塊蛋糕,長為X,寬為Y,現在有n個人來分這塊蛋糕,還要保證每個人分的蛋糕的面積相等。求一種分法,使得所有的蛋糕的長邊與短邊的比值的最大值最小。 思路:剛拿到這個題並沒有什麼思路。但是定睛一看,(n <= 10),額。。可以亂搞了。。。 直接爆搜就可以水

BZOJ 1016--最小生成樹計數(&kruskal)

names 連通性 如果 int 沒有 計數 ++ struct include     想我這樣的zz根本不會矩陣樹。。。。。 題目鏈接:     http://www.lydsy.com/JudgeOnline/problem.php?id=1016 S

BZOJ1024(SCOI2009)[生日快樂]--暴

【解題報告】 可以發現n很小,所以可以想到應該是從n考慮此題。根據題意知最後切好的N塊蛋糕肯定是等面積的,那麼設這個面積為S,所以對於每次切蛋糕,被切開的兩塊蛋糕的面積肯定是S的倍數,所以直接暴搜

BZOJ-1024-[SCOI2009]生日快樂

bzoj 1.8 content return data blog printf 技術分享 amp Description   windy的生日到了,為了慶祝生日,他的朋友們幫他買了一個邊長分別為 X 和 Y 的矩形蛋糕。現在包括windy,一共有 N 個人來分這塊大

BZOJ 1293】【SCOI 2009生日禮物

Description 小西有一條很長的綵帶,綵帶上掛著各式各樣的彩珠。已知彩珠有N個,分為K種。簡單的說,可以將綵帶考慮為x軸,每一個彩珠有一個對應的座標(即位置)。某些座標上可以沒有彩珠,但多個彩珠也可以出現在同一個位置上。 小布生日快到了,於是小西打算剪

bzoj 1024 生日快樂 暴力搜尋

windy的生日到了,為了慶祝生日,他的朋友們幫他買了一個邊長分別為 X 和 Y 的矩形蛋糕。現在包括windy,一共有 N 個人來分這塊大蛋糕,要求每個人必須獲得相同面積的蛋糕。 windy主刀,每一切只能平行於一塊蛋糕的一邊(任意一邊),並且必須把這塊蛋糕切成兩塊。這樣,要切成 N 塊蛋糕,windy必

BZOJ 1024: [SCOI2009]生日快樂

程式碼: #include <iostream> #include <cstdio> #include <cstring> #include <string.h> #include <queue> #inclu

bzoj 1024 SCOI2009 生日快樂 題解

windy的生日到了,為了慶祝生日,他的朋友們幫他買了一個邊長分別為 X 和 Y 的矩形蛋糕。現在包括windy,一共有 N 個人來分這塊大蛋糕,要求每個人必須獲得相同面積的蛋糕。 windy主刀,每一切只能平行於一塊蛋糕的一邊(任意一邊),並且必須把這塊蛋糕切成兩塊。這樣,要切成 N 塊蛋糕,windy必

BZOJ 1024, 生日快樂

Problem 傳送門 Mean 根據特定切割方法將一塊蛋糕分成面積相等的若干塊小蛋糕,求可行切割方案中小蛋糕長邊比短邊的最大值的最小值。 Analysis 資料範圍很小,甚至不必二分

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

1024:[SCOI2009]生日快樂 Time Limit 1 Sec Memory Limit 162 MB 【題目描述】   windy的生日到了,為了慶祝生日,他的朋友們幫他買了一個邊長分別為 X 和 Y 的矩形蛋糕。現在包括windy

BZOJ 1024-生日快樂(DFS)

1024: [SCOI2009]生日快樂 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2792  Solved: 2041 [Submit][Sta

[BZOJ]1024: [SCOI2009]生日快樂

因為今天是同桌生日(兼虐狗節)加上第一次寫部落格,所以就挑了這麼一道(水)題。 題目大意:N個人分一個邊長分別為X和Y的矩形蛋糕,要切N-1刀分成面積相等的N塊,並且每刀都得平行於一塊蛋糕的一

1024: [SCOI2009]生日快樂

生日快樂 size ret 朋友 要求 turn rip IV using Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3217 Solved: 2346[Submit][Status][Discuss] Descrip

【OI做題記錄】【BZOJ】【SCOI2009】生日快樂

試題編號:BZOJ1024 windy的生日到了,為了慶祝生日,他的朋友們幫他買了一個邊長分別為 X 和 Y 的矩形蛋糕。現在包括windy,一共有 N 個人來分這塊大蛋糕,要求每個人必須獲得相同面積的蛋糕。windy主刀,每一切只能平行於一塊蛋糕的一邊(任意一邊

BZOJ 1297」「SCOI 2009」迷路「矩陣乘法」

per 題解 algo code namespace sin 有向圖 line [1] 題意 邊權\(w \in [1, 9]\)的\(n\)個結點的有向圖,圖上從\(1\)到\(n\)長度為\(d\)的路徑計數,\(n \leq 10\). 題解 如果邊權為\(1\)很經

hdu 1518 Square ,,,,花樣剪枝啊!!!

test else 都是 form i+1 cep 題意 。。 bsp Square Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S

1--城堡問題

col 一個 -- clas set oms max image 結果 深搜1--城堡問題 一、心得 這個題目的棧實現可以看一看 也是很基礎的迷宮問題,也就是一個深搜 二、題目及分析 三、代碼及結果 遞歸 1 #include <iostream>

祝福自己生日快樂

eba -1 導入 來源 color bold 發布 自己 style 原文發布時間為:2009-05-19 —— 來源於本人的百度文章 [由搬家工具導入]2009年5月19日 今天我&#

BZOJ】2038: [2009國家集訓隊]小Z的襪子(hose)

detail log net 施工 pop href .net tails zoj 【算法】莫隊 【題解】 BZOJ 2038 2009國家集訓隊 小Z的襪子(hose) 莫隊算法 莫隊……講稿? 施工中……【BZOJ】2038: [2009國家集訓隊]小Z的襪子(hose

智能手機行業的十年——iPhone生日快樂

手機 智能手機行業 2017年6月29日,是iPhone正式發售十周年的日子。白駒過隙,一晃十年已過。回想2007年,在舊金山舉辦的Macworld大會上,史蒂夫·喬布斯(SteveJobs)向世界展示了一款集“寬屏觸控式iPod、革命性手機、突破性互聯網通信設備”於一身的跨時代產品 —— iPhon