[DP枚举]UVa 1629 - Cake slicing
来源:互联网 发布:数据加密的基本功能 编辑:程序博客网 时间:2024/05/18 09:49
左右切 上下切
枚举处每一种切法 在求最小的
用到了记忆化DP
#include<bits/stdc++.h>using namespace std;const int INF = 0x3f3f3f3f;int n,m,dp[25][25][25][25];bool has[25][25];int sum(int u,int d,int l,int r){ int ret=0; for(int i=u+1;i<=d;i++) for(int j=1+l;j<=r;++j) { if(has[i][j]) ++ret; if(ret==2) return ret; } return ret;}int dfs(int u,int d,int l,int r){ int &ret=dp[u][d][l][r]; if(ret!=-1) return ret; int total=sum(u,d,l,r); if(total==1) return ret=0; if(!total)return ret=INF; ret=INF; for(int i=u+1;i<d;i++){ ret = min(ret,dfs(u,i,l,r)+dfs(i,d,l,r)+r-l); } for(int i=l+1;i<r;++i) ret=min(ret,dfs(u,d,l,i)+dfs(u,d,i,r)+d-u); return ret;}int main(){ int k,x,y,kase=0; while(cin>>n>>m>>k) { memset(dp,-1,sizeof(dp)); memset(has,0,sizeof(has)); for(int i=0;i<k;i++) cin>>x>>y, has[x][y]=1; cout<<"Case "<<++kase <<": "<<dfs(0,n,0,m)<<"\n"; } return 0;}
0 0
- [DP枚举]UVa 1629 - Cake slicing
- UVa 1629 Cake Slicing DP
- uva - 1629 Cake slicing(dp)
- uva 1629 cake slicing(dp)
- Uva-1629 Cake slicing(DP)
- UVa 1629 - Cake slicing
- UVA 1629 Cake slicing
- UVA 1629 Cake slicing (区间dp --记忆话搜索)
- UVA 1629 - Cake slicing 题解
- 1629 - Cake slicing(DP)
- UVa #1629 Cake slicing (习题9-3)
- [UVA 1629]Cake slicing[记忆化搜索]
- uva 1629——Cake slicing
- UVa 1629 Cake Slicing (切蛋糕)
- Cake slicing UVA
- Cake slicing UVA
- UVA 1629 Cake slicing(四维DP)【分割格子类模板】
- 1629 - Cake slicing
- io.js
- c++设计模式-----责任链模式
- linux网络编程
- Android使用属性动画property animation,实现分散式弹出菜单
- 易语言调用js实现md5加密
- [DP枚举]UVa 1629 - Cake slicing
- 京东笔试题目—寻宝藏dp解析
- Java网络编程
- Cocos2d场景切换效果汇总
- 删除数字
- git 远程操作详解
- lubuntu vncserver 开机启动的环境变量设置
- 图Uyui
- 关于Split()以某个字符串分割,解决特定字符串连续出现的问题