• SCOI2009 生日蛋糕


    每一切只能平行于一块蛋糕的一边(任意一边),并且必须把这块蛋糕切成两块。

    这样,要切成 块蛋糕,必须切 N-1 次。

    为了使得每块蛋糕看起来漂亮,我们要求 块蛋糕的长边与短边的比值的最大值最小。

    求出这个比值。

    最大最小≈二分答案。。。。

    然后搜索判定,dfs(xx,yy,limit,nn)表示要把长宽为xx,yy切成nn块蛋糕,答案不超过limit是否可行。

     

    View Code
     1 program cake(input,output);
     2 var
     3    x,y,n:longint;
     4    answer:double;
     5    s:double;
     6 procedure init;
     7 begin
     8    readln(x,y,n);
     9    s:=x*y/n;
    10 end;
    11 
    12 function max(aa,bb:double):double;
    13 begin
    14   if aa>bb then
    15     exit(aa);
    16   exit(bb);
    17 end;
    18 
    19 function min(aa,bb:double):double;
    20 begin
    21    if aa<bb then
    22      exit(aa);
    23    exit(bb);
    24 end;
    25 
    26 function can(xx,yy,limit:double;nn:integer):boolean;
    27 var
    28   i,j        :longint;
    29   x1,y1,x2,y2:double;
    30 begin
    31   if nn=1 then
    32   begin
    33     if max(xx,yy)/min(xx,yy)<=limit then
    34       exit(true);
    35     exit(false);
    36   end;
    37   for i:=1 to nn>>1 do
    38   begin
    39     x1:=s*i/yy;
    40     x2:=s*(nn-i)/yy;
    41     can:=can(x1,yy,limit,i) and can(x2,yy,limit,nn-i);
    42     if can then
    43      exit;
    44     y1:=s*i/xx;
    45     y2:=s*(nn-i)/xx;
    46     can:=can(xx,y1,limit,i) and can(xx,y2,limit,nn-i);
    47     if can then
    48      exit;
    49   end;
    50   exit(false);
    51 end;
    52 procedure main;
    53 var
    54   ll,rr,mid:double;
    55 begin
    56   ll:=0.00000000;
    57   rr:=99999999999;
    58   while rr-ll>1e-7 do
    59   begin
    60     mid:=(ll+rr)/2;
    61     if can(x,y,mid,n) then
    62       rr:=mid
    63     else
    64       ll:=mid;
    65   end;
    66   writeln(rr:0:6);
    67 end;
    68 begin
    69   assign(input,'cake.in');reset(input);
    70   assign(output,'cake.out');rewrite(output);
    71    init;
    72    main;
    73   close(input);
    74   close(output);
    75 end.

     

     

  • 相关阅读:
    jsonp
    web系统中上下移动功能的实现
    重载的目的是什么
    重写和重载
    final和static
    static的应用
    shiro认证
    做阉割版Salesforce难成伟大的TOB企业
    Go语言在国产CPU平台上应用前景的探索与思考
    101 More Security Best Practices for Kubernetes
  • 原文地址:https://www.cnblogs.com/neverforget/p/2453937.html
Copyright © 2020-2023  润新知