zoukankan      html  css  js  c++  java
  • BZOJ 1023 [SCOI2009]生日快乐

    1024: [SCOI2009]生日快乐

    Time Limit: 1 Sec  Memory Limit: 162 MB
    Submit: 1729  Solved: 1219
    [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 。

    Source

    题解:刚从病痛中挣扎出来就碰上这种题,心情大好呀~

    窝萌看到面积要相等,那么每次切完的面积必然是1/n的整数倍吧?那么爆搜好了。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<queue>
     6 #include<cstring>
     7 #define PAU putchar(' ')
     8 #define ENT putchar('
    ')
     9 using namespace std;
    10 double dfs(double x,double y,int n){
    11     double ans=10001.0;
    12     if(x<y)swap(x,y);if(n==1)return x/y;
    13     for(int i=1;i<n;i++){
    14         ans=min(ans,max(dfs(x/n*i,y,i),dfs(x/n*(n-i),y,n-i)));
    15         ans=min(ans,max(dfs(y/n*i,x,i),dfs(y/n*(n-i),x,n-i)));
    16     }return ans;
    17 }
    18 inline int read(){
    19     int x=0,sig=1;char ch=getchar();
    20     while(!isdigit(ch)){if(ch=='-')sig=-1;ch=getchar();}
    21     while(isdigit(ch))x=10*x+ch-'0',ch=getchar();
    22     return x*=sig;
    23 }
    24 inline void write(int x){
    25     if(x==0){putchar('0');return;}if(x<0)putchar('-'),x=-x;
    26     int len=0,buf[15];while(x)buf[len++]=x%10,x/=10;
    27     for(int i=len-1;i>=0;i--)putchar(buf[i]+'0');return;
    28 }
    29 double x,y;int n;
    30 void init(){
    31     x=read();y=read();n=read();
    32     printf("%.6lf",dfs(x,y,n));
    33     return;
    34 }
    35 void work(){
    36     return;
    37 }
    38 void print(){
    39     return;
    40 }
    41 int main(){init();work();print();return 0;}
  • 相关阅读:
    prototype.js超强的javascript类库
    MySQL Server Architecture
    Know more about RBA redo block address
    MySQL无处不在
    利用Oracle Enterprise Manager Cloud Control 12c创建DataGuard Standby
    LAMP Stack
    9i中DG remote archive可能导致Primary Database挂起
    Oracle数据库升级与补丁
    Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
    Oracle Ksplice如何工作?How does Ksplice work?
  • 原文地址:https://www.cnblogs.com/chxer/p/4658861.html
Copyright © 2011-2022 走看看