首页 > 代码库 > 1024: [SCOI2009]生日快乐
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\n",dfs(x,y,n));26 return 0;27 }
1024: [SCOI2009]生日快乐
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。