poj1190(搜索剪枝)
来源:互联网 发布:武器知乎 编辑:程序博客网 时间:2024/06/07 17:35
#include<cstdio>#include<cstdlib>#include<cmath>#define minn(a,b) (a>b?b:a)using namespace std;long long ans=99999999,n,m,mins[31],minv[31];void dfs(long long de,long long v,long long s,long long h,long long r){long long i,j;if(de==0){if(v==n&&s<ans)ans=s;return;} if((v+minv[de-1]>n)||(s+mins[de-1]>ans)||(2*(n-v)/r+s>=ans))return;for (i=r-1;i>=de;i--) {if (de==m) s=i*i;int min=minn(h-1,n-v-minv[de-1]);for (j=min;j>=de;j--) dfs(de-1,v+j*i*i,s+2*i*j,j,i);}}int main(){int i;scanf("%d%d",&n,&m);//体积 层数for (i=1;i<=30;i++) {mins[i]=mins[i-1]+i*i*2;minv[i]=minv[i-1]+i*i*i;}dfs(m,0,0,(int)((n-minv[m-1])/(m*m))+2,(int)(sqrt(1.0*(n-minv[m-1])/m))+2);//层数 体积 表面积 高度 半径if (ans<99999999) printf("%lld\n",ans); else printf("0\n");return 0;}
1 0
- poj1190(搜索剪枝)
- poj1190 生日蛋糕 (搜索剪枝)
- poj1190 生日蛋糕 搜索+剪枝
- POJ1190(搜索加剪枝)
- poj1190生日蛋糕(dfs+剪枝)
- POJ1190 生日蛋糕(DFS剪枝)
- POJ1190:生日蛋糕(深搜+剪枝)
- poj1190(dfs+剪枝)生日蛋糕
- POJ1190===搜索+剪枝===生日蛋糕
- poj1190 神剪枝啊
- POJ1190->DFS&&剪枝
- (poj1190)生日蛋糕(DFS和数学知识,剪枝!)
- POJ1190 生日蛋糕 ACM解题报告(DFS回溯+剪枝)
- DFS:POJ1190-生日蛋糕(基础搜索)
- poj1190 生日蛋糕 dfs神剪枝
- poj_1011_sticks(搜索+剪枝)
- hdu4499(剪枝搜索)
- 搜索(1):剪枝
- android开发之GridLayout详解
- Swift学习:1.2 Swift初见
- poj1088(记忆化搜索)
- 第一周 项目0 宣告“主权”
- iOS开发:APPicon、LunchImage及LunchScreen的使用
- poj1190(搜索剪枝)
- BZOJ 1500 splay
- poj1258(最小生成树Kruscal)
- HIT1004
- 软件开发思考
- IOS定位第三方框架LocationManager-master
- 脑上访问一个网页,整个过程是怎么样的
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- codeforce C. Learning Languages(并查集)