洛谷 P1731 生日蛋糕
来源:互联网 发布:网络信息安全漫画 编辑:程序博客网 时间:2024/05/22 14:48
题目背景
7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层
生日蛋糕,每层都是一个圆柱体。
设从下往上数第i(1<=i<=M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i
#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>using namespace std;const int INF = 1e9;int s[25],v[25],m,n,ans;void DFS(int mins,int minv,int level,int r,int h){ if(level==0){ if(minv==n) ans=min(ans,mins); return; } if(minv+v[level-1]>n||mins+s[level-1]>ans) return ; if(((n-minv)/r*2+mins)>ans) return ; //这句屏蔽掉会T掉两个点 //(n-minv)/r*2 剩下带搜索部分的最小面积 //mins,minv当前已搜索过的面积和体积 for(int i=r-1;i>=level;i--){ if(level==m) mins=i*i; int hx=min((n-minv-v[level-1])/(i*i),h-1); for(int j=hx;j>=level;j--) DFS(mins+i*j*2,minv+i*i*j,level-1,i,j); }}int main(){ //freopen("cake.in","r",stdin); //freopen("cake.out","w",stdout); ans=INF; scanf("%d%d",&n,&m); s[0]=v[0]=0; for(int i=1;i<=21;i++){ s[i]=s[i-1]+2*i*i;//渚ч潰绉? v[i]=v[i-1]+i*i*i; } DFS(0,0,m,n+1,n+1); if(ans==INF) printf("%d\n",0); else printf("%d",ans); return 0;}
阅读全文
0 0
- 洛谷 P1731 生日蛋糕
- 洛谷 P1731 生日蛋糕
- 洛谷 P1731 [NOI1999 D1T3] 生日蛋糕
- [P1731]生日蛋糕
- P1731生日蛋糕 减枝
- Codevs 1710 == POJ 1190 生日蛋糕 == 洛谷P1731
- 生日蛋糕
- 生日蛋糕
- 生日蛋糕
- 生日蛋糕
- 生日蛋糕
- 生日蛋糕!
- 生日蛋糕
- 生日蛋糕
- 洛谷 1731 生日蛋糕 dfs+剪枝
- p1731蛋糕提示
- 生日蛋糕(noi99)
- PKU1190 生日蛋糕
- 根据指定的学科, 取出点击量前三的
- 535. Encode and Decode TinyURL
- 【队列】之链式存储结构
- Nginx安装
- springboot零侵入配置mybatis插件
- 洛谷 P1731 生日蛋糕
- 使用Http访问网络并且使用正则获取需要用到的图片链接
- [Hackerrank题目选做] Kundu and Tree 组合数学
- 欢迎使用CSDN-markdown编辑器
- uwp开发之Windows.Data.Json解析json
- 计算机组成原理——输入输出系统
- 设计模式->结构型模式->享元模式
- [IMO原题] BZOJ 4915 简单的数字题
- Java实现翻转单链表