BZOJ P3810[Coci2015]Stanovi

来源:互联网 发布:淘宝 远望手机 编辑:程序博客网 时间:2024/05/04 16:44

记忆化搜索

表示长为n,宽为m的矩形,上下左右是否接触边界时,最小的值

下面是代码,没有WA算我输

#include<iostream>#include<fstream>#include<algorithm>#include<cmath>#include<cstring>using namespace std;//ifstream fin(".in");//ofstream fout(".out");int jiyi[303][303][2][2][2][2];long long k,n,m;int dp(int n,int m,int l,int r,int u,int d){if(n>m){swap(n,m);swap(l,u);swap(r,d);}if(l>r){swap(l,r);}if(d>u){swap(u,d);}int& fanhui=jiyi[n][m][l][r][u][d];if(fanhui!=-1){return fanhui;}else{fanhui=min(9999999999,(n*m-k)*(n*m-k));if(u||d||l&&r){for(int y=1;y<=m-1;y++){fanhui=min(fanhui,dp(n,y,l,0,u,d)+dp(n,m-y,0,r,u,d));}}if(l||r||u&&d){for(int x=1;x<=n-1;x++){fanhui=min(fanhui,dp(x,m,l,r,0,d)+dp(n-x,m,l,r,u,0));}}}return fanhui;}int main(){cin>>n>>m>>k;memset(jiyi,-1,sizeof(jiyi));cout<<dp(n,m,1,1,1,1)<<endl; return 0;}


1 0
原创粉丝点击