日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BZOJ-1024 生日快乐 DFS+一丝sb的数学思考

發布時間:2024/4/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BZOJ-1024 生日快乐 DFS+一丝sb的数学思考 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1024: [SCOI2009]生日快樂
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 1948 Solved: 1391
[Submit][Status][Discuss]

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 。

由于面積相同,所以切法非常的簡單,也就是說所有的切割的狀態都是可以枚舉的,鑒于N的數量小的可憐,可以直接暴力搜索出所有可能狀態,并找出答案即可(天真的我看見”最大值最小“還想二分呢….)

代碼如下:

/**************************************************************Problem: 1024User: DaD3zZLanguage: C++Result: AcceptedTime:44 msMemory:1284 kb ****************************************************************/#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; double dfs(int n,double x,double y) {int i;double ans=1e6;if(n==1)return exp(fabs(log(x/y)));for(i=1;i<=n/2;i++)ans=min(ans,max(dfs(i,x/n*i,y),dfs(n-i,x-x/n*i,y)));for(i=1;i<=n/2;i++)ans=min(ans,max(dfs(i,x,y/n*i),dfs(n-i,x,y-y/n*i)));return ans; } int main() {int n,x,y;scanf("%d%d%d",&x,&y,&n);printf("%.6lf\n", dfs(n,x,y)); }

轉載于:https://www.cnblogs.com/DaD3zZ-Beyonder/p/5346243.html

總結

以上是生活随笔為你收集整理的BZOJ-1024 生日快乐 DFS+一丝sb的数学思考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。