#include<iostream>
#include<cstdio> using namespace std; const int inf=0x3f3f3f3f; int n,m,s,minv[25],mins[25],ans=inf; void dfs(int sumv,int sums,int cur,int r,int h){ int i,j,temp; if(cur==0){ if(sumv==n)ans=min(sums,ans); return; } if(sumv+minv[cur]>n)return; if(sums+mins[cur]>ans)return; if(2*(n-sumv)/r+sums>=ans)return; for(i=r-1;i>=cur;i--){ if(cur==m)sums=i*i; temp=min((n-minv[cur-1]-sumv)/i/i,h-1); for(j=temp;j>=cur;j--) dfs(sumv+i*i*j,sums+2*i*j,cur-1,i,j); } } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ minv[i]=minv[i-1]+i*i*i; mins[i]=mins[i-1]+2*i*i; } dfs(0,0,m,n+1,n+1); printf("%d",ans==inf?0:ans); }
题目 67 [NOI 1999]生日蛋糕
2017-05-14 07:16:10
|
|
DFS+剪枝~有一个点死都过不去QUQ
|
|
不行了……一遍80分之后就无计可施了,我只能伸出我罪恶的爪子了(╯▽╰)
题目 67 [NOI 1999]生日蛋糕
2016-10-18 21:37:54
|
|
poj都过了,为什么cogs超时呢??
|
|
|
|
到底要剪枝多少次!!!!!!??????
题目 67 [NOI 1999]生日蛋糕
2015-03-25 21:11:43
|
|
搜索好题。
题目 67 [NOI 1999]生日蛋糕
2015-01-10 14:18:17
|
|
剪枝一入深似海……
|
|
打了2组表。。。明天一定再看看
题目 67 [NOI 1999]生日蛋糕
2012-12-17 22:32:04
|
|
太变态了
题目 67 [NOI 1999]生日蛋糕
2008-10-15 19:05:36
|
|
……好难
题目 67 [NOI 1999]生日蛋糕
2008-07-20 09:52:31
|
|
Yes!Me too~~~
题目 67 [NOI 1999]生日蛋糕
2008-07-20 08:37:54
|
|
老师给的100、2我都过了,在这里一个都过不去。。。。。。。。。。。。。。。
题目 67 [NOI 1999]生日蛋糕
2008-07-19 18:20:46
|