应该是第一次写这种图形类的DP。。

  一个“I”可以分成三个矩形。。令f[1..3][i][j][k]表示第几个矩形,下边界为第i行的j~k列,的最大面积。

  然后就是各种优化啊什么的。。。时间复杂度O(nm²)

  一开始一个辅助的区间DP写挂然后调了半天TAT

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. using namespace std;
  5. const int maxn=;
  6. const int inf=;
  7. int f[][][maxn][maxn];
  8. int sm[maxn][maxn],mx1[maxn][maxn],mx2[maxn][maxn];
  9. int n,m,pre,now,ans,tmpmx;
  10.  
  11. int ra;char rx;
  12. inline int read(){
  13. rx=getchar(),ra=;
  14. while(rx<''||rx>'')rx=getchar();
  15. while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
  16. }
  17. inline int max(int a,int b){return a>b?a:b;}
  18. inline int min(int a,int b){return a<b?a:b;}
  19. int main(){
  20. register int i,j,k;
  21. n=read(),m=read();
  22. for(i=;i<=n;i++)
  23. for(j=;j<=m;j++)sm[i][j]=sm[i][j-]+read();
  24. for(i=;i<=m;i++)sm[][i]=i;
  25.  
  26. now=,pre=;
  27. for(i=;i<=;i++)memset(f[][i],,sizeof(f[][i]));
  28. for(i=;i<=n;i++,swap(now,pre)){
  29. for(j=;j<m;j++)for(k=j+;k<=m;k++)
  30. if(sm[i][k]==sm[i][j-])
  31. f[now][][j][k]=(sm[i-][k]==sm[i-][j-]?f[pre][][j][k]:)+k-j+;
  32. else f[now][][j][k]=-inf;
  33.  
  34. for(j=;j<m;j++)for(k=m,tmpmx=-inf;k>j;k--)
  35. tmpmx=max(tmpmx,f[pre][][j][k]),
  36. mx1[j][k]=max(mx1[j-][k],tmpmx);
  37. for(j=;j<m;j++)for(k=j;k<m;k++)
  38. if(sm[i][k]==sm[i][j-]){
  39. f[now][][j][k]=f[pre][][j][k]+k-j+;
  40. if(sm[i-][k+]==sm[i-][j-])
  41. f[now][][j][k]=max(f[now][][j][k],mx1[j-][k+]+k-j+);
  42. }
  43. else f[now][][j][k]=-inf;
  44.  
  45. for(j=;j<m;j++)mx2[j][j]=f[pre][][j][j];
  46. for(j=;j<m;j++)
  47. for(k=;k<m-j;k++)
  48. mx2[k][k+j]=max(mx2[k][k+j-],max(mx2[k+][k+j],f[pre][][k][k+j]));
  49.  
  50. for(j=;j<m;j++)for(k=j+;k<=m;k++){
  51. if(sm[i][k]==sm[i][j-])
  52. f[now][][j][k]=max(f[pre][][j][k],mx2[j+][k-])+k-j+;
  53. else f[now][][j][k]=-inf;
  54. if(f[now][][j][k]>ans)ans=f[now][][j][k];
  55. }
  56. }
  57. printf("%d\n",ans);
  58. return ;
  59. }

[bzoj1910] [Ctsc2002] Award 颁奖典礼的更多相关文章

  1. BZOJ [Ctsc2002] Award 颁奖典礼 解题报告

    [Ctsc2002] Award 颁奖典礼 Description IOI2002的颁奖典礼将在YONG-IN Hall隆重举行.人们在经历了充满梦幻的世界杯之后变得更加富于情趣.为了使颁奖典礼更具魅 ...

  2. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  3. Got the Best Employee of the year 2015 Star Award

    Got "The Best Employee of the year 2015 Star Award" from the company, thanks to all that h ...

  4. 依网友要求发个修改award bios的方法(刷CPU微码)

    注意本文修改的是award BIOS 首先看自己的CPUID是哪个代码,打开CPU-Z如下图红圈中就是,此CPUID就是067A,好了下面就可以开始准备工作 准备好BIOS文件,以及CPU微码文件.可 ...

  5. [Bzoj 2547] [Ctsc2002] 玩具兵

    2547: [Ctsc2002]玩具兵 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 317  Solved: 152[Submit][Status] ...

  6. 【Turing Award】Robin Milner And Butler W. Lampson

    1991 罗宾·米尔纳(Robin Milner) Robin Milner(13 January 1934 – 20 March 2010) Introduction : Milner was bo ...

  7. 2019年猪年颁奖典礼、公司年会、跨年晚会、科技会议、年终答谢会之幕布背景展板PSD模板-第三部分

    16套--2019年猪年颁奖典礼.公司年会.跨年晚会.科技会议.年终答谢会之幕布.背景和展板PSD模板,免费颁奖典礼PSD展板背景幕布,下载地址:百度网盘,https://pan.baidu.com/ ...

  8. BZOJ2548:[CTSC2002]灭鼠行动

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  9. 历届图灵奖 (Turing award)得奖名单

    历届图灵奖 (Turing award)得奖名单 一.总结 一句话总结:各个方面都有. 二.历届图灵奖 (Turing award)得奖名单 Turing奖最早设立于1966年,是美国计算机协会在计算 ...

随机推荐

  1. bzoj 3242: [Noi2013]快餐店

    Description 小T打算在城市C开设一家外送快餐店.送餐到某一个地点的时间与外卖店到该地点之间最短路径长度是成正比的,小T希望快餐店的地址选在离最远的顾客距离最近的地方. 快餐店的顾客分布在城 ...

  2. rabbitMQ教程(三) spring整合rabbitMQ代码实例

    一.开启rabbitMQ服务,导入MQ jar包和gson jar包(MQ默认的是jackson,但是效率不如Gson,所以我们用gson) 二.发送端配置,在spring配置文件中配置 <?x ...

  3. 在亚马逊linux环境上装mysql+添加启动项

    安装mysql sudo yum install mysql sudo yum install mysql-server sudo yum install mysql-devel 添加到系统启动项su ...

  4. haslayout知多少

    我们都知道浏览器有bug,而IE的bug似乎比大多数浏览器都多.IE的表现与其他浏览器不同的原因之一就是,显示引擎使用一个称为布局(layout)的内部概念.   因为布局是专门针对显示引擎内部工作方 ...

  5. linux下搜索指定内容

    echo " ls *.$2 | while read file;do out=$( (grep -n $1 $file) ) [ -n \"$out\" ] & ...

  6. Head First设计模式之目录

    只有沉淀.积累,才能远航:沉沉浮浮,脚踏实地. 这本书已经闲置了好久,心血来潮,决定写个目录,让自己坚持看完这本书 创建型模式 抽象工厂模式(Abstract factory pattern): 提供 ...

  7. vs2017中生成.Net Standard Libarary的Nuget Package

    场景: Project A 对Project B存在 project to project reference.这种场景下必须为两者都生成nuget package.这样在load Project A ...

  8. CS:APP3e 深入理解计算机系统_3e MallocLab实验

    详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

  9. 自学Aruba1.2-WLAN一些基本常识

    点击返回:自学Aruba之路 自学Aruba1.2-WLAN一些基本常识 1. LAN.WAN.WLAN.WIFI术语 1.1 局域网(Local Area Network,LAN) 是指在某一区域内 ...

  10. [笔记]《JavaScript高级程序设计》- 最佳实践

    一.可维护性 1 什么是可维护的代码 可理解性--其他人可以接受代码并理解它的意图和一般途径,而无需原开发人员的完整解释. 直观性--代码中的东西一看就能明白,不管其操作过程多么复杂. 可适应性--代 ...