zoukankan      html  css  js  c++  java
  • 【BZOJ】【1024】【SCOI2009】生日快乐

    枚举


      想到以后一秒钟变水题……

      一开始我想:这不是可以随便切吗……但是突然想到:第一刀,必须切在n等分点上!因为要求最后每块的大小相等,那么同理,比如总共要切成7块,第一刀切成了$frac{3}{7}$和$frac{4}{7}$两部分,那么后面再切的时候就必须在三等分点和四等分点上切!

      所以dfs一下,枚举是在长边上切还是短边上切,以及是在第几个n等分点上切就可以了……→_→

    对了,当n==1的时候得特判一下,ans=长边/短边。我WA在第一个点上就是因为这个……(一开始居然会想着n=1的时候ans=1.000000我也是醉了……)

     1 /**************************************************************
     2     Problem: 1024
     3     User: Tunix
     4     Language: C++
     5     Result: Accepted
     6     Time:16 ms
     7     Memory:804 kb
     8 ****************************************************************/
     9  
    10 //BZOJ 1024
    11 #include<cstdio>
    12 #include<algorithm>
    13 #define F(i,j,n) for(int i=j;i<=n;++i)
    14 using namespace std;
    15 int n;
    16 double dfs(double x,double y,int n){
    17     if (x<y) swap(x,y);
    18     if (n==1) return x/y;
    19     else{
    20         double ans=1e16;
    21         F(i,1,n/2){
    22             ans=min(ans,max(dfs(x*i/n,y,i),dfs(x*(n-i)/n,y,n-i)));
    23             ans=min(ans,max(dfs(x,y*i/n,i),dfs(x,y*(n-i)/n,n-i)));
    24         }
    25         return ans;
    26     }
    27 }
    28 int main(){
    29     double x,y,ans=1e16;
    30     scanf("%lf%lf%d",&x,&y,&n);
    31     if (x<y) swap(x,y);
    32     if (n==1) ans=x/y;
    33     else F(i,1,n/2){
    34         ans=min(ans,max(dfs(x*i/n,y,i),dfs(x*(n-i)/n,y,n-i)));
    35         ans=min(ans,max(dfs(x,y*i/n,i),dfs(x,y*(n-i)/n,n-i)));
    36     }
    37     printf("%.6lf
    ",ans);
    38     return 0;
    39 }
    View Code

    1024: [SCOI2009]生日快乐

    Time Limit: 1 Sec  Memory Limit: 162 MB
    Submit: 1622  Solved: 1134
    [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

    [Submit][Status][Discuss]
  • 相关阅读:
    临时禁用大型列表上的列表视图阈值
    临时禁用大型列表上的列表视图阈值
    SharePoint Foundation 2010 托管客户端对象模型概述 创建 Windows 控制台托管的客户端对象模型应用程序
    如何隐藏MOSS2010的网站操作菜单
    MOSS2010的列表视图参数设置以及列表记录样式设置
    使用SharePoint Server 2010搜索PDF文档
    Sharepoint2010如何使用Linq to Sharepoint
    水晶報表字段超鏈結4/28
    4月21自考4/23
    [轉]統籌方法華羅庚
  • 原文地址:https://www.cnblogs.com/Tunix/p/4421750.html
Copyright © 2011-2022 走看看