#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int cherry[405],dp[405][405];
int solve(int l,int r)
{
//printf("%d,%d %d,%d\n",l/m,l%m,r/m,r%m);
int &ret=dp[l][r];
if(ret!=-1)return ret;
int nmin=30,nmax=-1,mmin=30,mmax=-1;
for(int i=1;i<=k;++i)
{
int ntmp=cherry[i]/m,mtmp=cherry[i]%m;
if(ntmp>=l/m&&ntmp<=r/m&&mtmp>=l%m&&mtmp<=r%m)nmin=min(nmin,ntmp),nmax=max(nmax,ntmp),mmin=min(mmin,mtmp),mmax=max(mmax,mtmp);
}
if(nmin==-1)ret=0;
if(nmin==nmax&&mmin==mmax)ret=0;
if(ret==0)return ret;
ret=0x3f3f3f3f;
for(int i=nmin;i<nmax;++i)ret=min(ret,solve(l,r-(r/m-i)*m)+solve(l+(i-l/m+1)*m,r)+(r%m-l%m+1));
for(int i=mmin;i<mmax;++i)ret=min(ret,solve(l,r-(r%m-i))+solve(l+(i-l%m+1),r)+(r/m-l/m+1));
return ret;
}
int main()
{
int Case=0;
while(~scanf("%d%d%d",&n,&m,&k))
{
memset(dp,-1,sizeof dp);
for(int i=1;i<=k;++i){int a,b;scanf("%d%d",&a,&b);cherry[i]=a*m-m+b-1;}
printf("Case %d: %d\n",++Case,solve(0,n*m-1));
}
}

最新文章

  1. http_build_query 的一个问题
  2. Blackfin DSP(八):1D DMA与音频处理模板
  3. 不用asp.net MVC,用WebForm照样可以实现MVC(请看最后一句话)
  4. poj2912(种类并查集+枚举)
  5. onclick事件分析
  6. C#实现文件下载
  7. MDK+硬件仿真器实现debugprintf()-stm32
  8. Mysql允许外网接入
  9. 在ctex环境下利用Metapost作图
  10. MFC对话框Style说明
  11. dplyr 数据操作 常用函数(5)
  12. 【WC2013】糖果公园
  13. Windows 2008 R2_NLB网络负载均衡(图文详解)(转)
  14. Oracle执行计划学习笔记
  15. less是什么?直接用css好还是less好
  16. Unity3D中利用Action实现自己的消息管理(订阅/发布)类
  17. Yii2 baisic版gii的使用和分页
  18. 洛谷P2900 [USACO08MAR]土地征用Land Acquisition(动态规划,斜率优化,决策单调性,线性规划,单调队列)
  19. VS2010 如何自动生成UML图
  20. [Android Pro] Swift 3.0多线程

热门文章

  1. F - 我们什么时候能见面? POJ - 2028
  2. 求你了,别再问我Zookeeper如何实现分布式锁了!!!
  3. 从JDK源码学习Arraylist
  4. SWUST OJ 1075 求最小生成树(Prim算法)
  5. 摩尔投票算法( Boyer-Moore Voting Algorithm)
  6. php人民币小写转大写函数,不限长度,精确到分
  7. Vulnhub DC-2靶机渗透
  8. redis持久化文件问题
  9. jvm入门及理解(一)——简介与体系架构
  10. CVE-2019-17671:wrodpress 未授权访问漏洞-复现