uva 1629 Cake Slcing 记忆化搜索+dp
来源:互联网 发布:什么是阿里云证书 编辑:程序博客网 时间:2024/06/06 19:15
点击打开链接
//题意:n*m的矩形上有k个cake 问最少切多少次能把这k个cake分离开来(不在同一个矩形上)
idp[N][N][N][N]; N<=20
//dp[u][d][l][r] 定义上下左右边界为u,d,l,r时,最小的切割次数 按水平和垂直切割转移状态即可
#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <map>#include <vector> using namespace std;typedef long long ll;const int N=20+5;const ll inf=1e9;int n,m,k;bool a[N][N];//该pos是否有cake //题意:n*m的矩形上有k个cake 问最少切多少次能把这k个cake分离开来(不在同一个矩形上) int dp[N][N][N][N];//dp[u][d][l][r] 定义上下左右边界为u,d,l,r时,最小的切割次数 int sum(int u,int d,int l,int r){int res=0;for(int i=u+1;i<=d;i++)// {for(int j=l+1;j<=r;j++){if(a[i][j])res++;}}return res;}int DP(int u,int d,int l,int r){int &res=dp[u][d][l][r];if(res!=-1)return res;int tot=sum(u,d,l,r);//计算该区域内有多少个cake if(tot==1)return res=0; if(tot==0)//每一块都要有且只有一个cake return res=inf;res=inf;//水平切割 for(int i=u+1;i<d;i++){res=min(res,DP(u,i,l,r)+DP(i,d,l,r)+r-l);//切割长度r-l} for(int j=l+1;j<r;j++){res=min(res,DP(u,d,l,j)+DP(u,d,j,r)+d-u);}return res;}int main(){int cas=0;while(cin>>n>>m>>k){memset(a,0,sizeof(a));memset(dp,-1,sizeof(dp));for(int i=0;i<k;i++){int x,y;cin>>x>>y;a[x][y]=1;}int ans=DP(0,n,0,m);printf("Case %d: %d\n",++cas,ans);}return 0;}
0 0
- uva 1629 Cake Slcing 记忆化搜索+dp
- [UVA 1629]Cake slicing[记忆化搜索]
- UVA 1629 Cake slicing (区间dp --记忆话搜索)
- UVa 1629 - Cake slicing(记忆化搜索)
- UVa 1629 Cake slicing (记忆化搜索)
- UVA 1629 Cake slicing——记忆化搜索
- ZOJ 3537 Cake 凸包+区间DP+记忆化搜索
- 100道动态规划——6 UVA 1629 Cake slicing 记忆化搜索
- UVA 607 (dp记忆化搜索)
- UVa 1629 Cake Slicing DP
- uva - 1629 Cake slicing(dp)
- uva 1629 cake slicing(dp)
- Uva-1629 Cake slicing(DP)
- hdu 5535 Cake 构造+记忆化搜索
- hdu2513:Cake slicing(记忆化搜索)
- Uva 10891 Game of Sum - 区间DP..记忆化搜索
- uva 10453 - Make Palindrome (区间dp,记忆化搜索)
- UVA 10891 Game of Sum dp(记忆化搜索)
- Redis键值(Key-Value)设计案例
- git之 分支切换时相互影响的问题
- 用AndroidStudio查看源码
- -----------------------------------------
- Unity3D研究院之C#使用Socket与HTTP连接服务器传输数据包
- uva 1629 Cake Slcing 记忆化搜索+dp
- 利用ExpandableListViewAdapter 点击父节点,无法进行展开和收缩
- unity获取设备分辨率
- 服务器端判断客户端是否是手机端浏览器
- 表单外超链同时提交表单内标签和超链url(超链接提交表单同时传值给另一个页面)
- java中的异常
- 【Node.js】 运行在服务端的 JavaScript
- sqlserver下 代码实现数据库附加和分离
- centos docker安装