zoukankan      html  css  js  c++  java
  • 1024: [SCOI2009]生日快乐

    暴力题,N<=10,没注意到平均分,读题真是。。

    我们对于一个矩形分成两块进行搜。然后求较大值。

    ans=min(ans,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n-i);

    就是分成两块,分别递归的样子。

     1 #include<stdio.h>
     2 #include<algorithm>
     3 #include<string.h>
     4 #include<math.h>
     5 #include<iostream>
     6 using namespace std;
     7 
     8 double dfs(double x,double y,int n)
     9 {
    10    if (n==1) return max(x/y,y/x);
    11    double tmp=10e10;
    12 
    13    for (int i=1;i<n;i++){
    14    tmp=min(tmp,max(dfs(x,y/n*i,i),dfs(x,y/n*(n-i),n-i)));
    15    tmp=min(tmp,max(dfs(x/n*i,y,i),dfs(x/n*(n-i),y,n-i)));
    16    }
    17    return tmp;
    18 }
    19 
    20 int main()
    21 {
    22     double  x,y;
    23     int n;
    24     cin>>x>>y>>n;
    25     printf("%.6lf
    ",dfs(x,y,n));
    26     return 0;
    27 }
    View Code
  • 相关阅读:
    三维几何模板
    凸包
    计算几何 部分模板
    几何模板
    高斯消元模板
    tarjin求割点
    在无向图中找最短桥(tarjan)
    线段树
    错排问题
    NABCD分析
  • 原文地址:https://www.cnblogs.com/forgot93/p/4085700.html
Copyright © 2011-2022 走看看