[bzoj1910] [Ctsc2002] Award 颁奖典礼
应该是第一次写这种图形类的DP。。
一个“I”可以分成三个矩形。。令f[1..3][i][j][k]表示第几个矩形,下边界为第i行的j~k列,的最大面积。
然后就是各种优化啊什么的。。。时间复杂度O(nm²)
一开始一个辅助的区间DP写挂然后调了半天TAT
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
const int maxn=;
const int inf=;
int f[][][maxn][maxn];
int sm[maxn][maxn],mx1[maxn][maxn],mx2[maxn][maxn];
int n,m,pre,now,ans,tmpmx; int ra;char rx;
inline int read(){
rx=getchar(),ra=;
while(rx<''||rx>'')rx=getchar();
while(rx>=''&&rx<='')ra*=,ra+=rx-,rx=getchar();return ra;
}
inline int max(int a,int b){return a>b?a:b;}
inline int min(int a,int b){return a<b?a:b;}
int main(){
register int i,j,k;
n=read(),m=read();
for(i=;i<=n;i++)
for(j=;j<=m;j++)sm[i][j]=sm[i][j-]+read();
for(i=;i<=m;i++)sm[][i]=i; now=,pre=;
for(i=;i<=;i++)memset(f[][i],,sizeof(f[][i]));
for(i=;i<=n;i++,swap(now,pre)){
for(j=;j<m;j++)for(k=j+;k<=m;k++)
if(sm[i][k]==sm[i][j-])
f[now][][j][k]=(sm[i-][k]==sm[i-][j-]?f[pre][][j][k]:)+k-j+;
else f[now][][j][k]=-inf; for(j=;j<m;j++)for(k=m,tmpmx=-inf;k>j;k--)
tmpmx=max(tmpmx,f[pre][][j][k]),
mx1[j][k]=max(mx1[j-][k],tmpmx);
for(j=;j<m;j++)for(k=j;k<m;k++)
if(sm[i][k]==sm[i][j-]){
f[now][][j][k]=f[pre][][j][k]+k-j+;
if(sm[i-][k+]==sm[i-][j-])
f[now][][j][k]=max(f[now][][j][k],mx1[j-][k+]+k-j+);
}
else f[now][][j][k]=-inf; for(j=;j<m;j++)mx2[j][j]=f[pre][][j][j];
for(j=;j<m;j++)
for(k=;k<m-j;k++)
mx2[k][k+j]=max(mx2[k][k+j-],max(mx2[k+][k+j],f[pre][][k][k+j])); for(j=;j<m;j++)for(k=j+;k<=m;k++){
if(sm[i][k]==sm[i][j-])
f[now][][j][k]=max(f[pre][][j][k],mx2[j+][k-])+k-j+;
else f[now][][j][k]=-inf;
if(f[now][][j][k]>ans)ans=f[now][][j][k];
}
}
printf("%d\n",ans);
return ;
}
[bzoj1910] [Ctsc2002] Award 颁奖典礼的更多相关文章
- BZOJ [Ctsc2002] Award 颁奖典礼 解题报告
[Ctsc2002] Award 颁奖典礼 Description IOI2002的颁奖典礼将在YONG-IN Hall隆重举行.人们在经历了充满梦幻的世界杯之后变得更加富于情趣.为了使颁奖典礼更具魅 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- 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 ...
- 依网友要求发个修改award bios的方法(刷CPU微码)
注意本文修改的是award BIOS 首先看自己的CPUID是哪个代码,打开CPU-Z如下图红圈中就是,此CPUID就是067A,好了下面就可以开始准备工作 准备好BIOS文件,以及CPU微码文件.可 ...
- [Bzoj 2547] [Ctsc2002] 玩具兵
2547: [Ctsc2002]玩具兵 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 317 Solved: 152[Submit][Status] ...
- 【Turing Award】Robin Milner And Butler W. Lampson
1991 罗宾·米尔纳(Robin Milner) Robin Milner(13 January 1934 – 20 March 2010) Introduction : Milner was bo ...
- 2019年猪年颁奖典礼、公司年会、跨年晚会、科技会议、年终答谢会之幕布背景展板PSD模板-第三部分
16套--2019年猪年颁奖典礼.公司年会.跨年晚会.科技会议.年终答谢会之幕布.背景和展板PSD模板,免费颁奖典礼PSD展板背景幕布,下载地址:百度网盘,https://pan.baidu.com/ ...
- BZOJ2548:[CTSC2002]灭鼠行动
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- 历届图灵奖 (Turing award)得奖名单
历届图灵奖 (Turing award)得奖名单 一.总结 一句话总结:各个方面都有. 二.历届图灵奖 (Turing award)得奖名单 Turing奖最早设立于1966年,是美国计算机协会在计算 ...
随机推荐
- C C语言中关键词,以及知识点复习
C语言学习 C语言练习知识点 auto 局部变量(自动储存) break 无条件退出程序最内层循环 case switch语句中选择项 char ...
- IDS 源镜像端口添加
把核心交换机的G1/2口镜像到目的交换机的G1/4口,两个交换机之间都是连接的24口 1.核心交换机配置 Ruijie# configure tRuijie(config)# vlan 77Ruiji ...
- C++ 头文件系列(iomanip)
1. 简介 该头文件定义了一些参数化的操纵器(manipulatators),注意ios头文件也定义了一些. 2. maniapulators 2.1 C++98 resetiosflags : 重置 ...
- Cat 跨线程之 TaggedTransaction 用法和原理分析
代码 package com.dianping.cat.message.internal; import com.dianping.cat.Cat; import com.dianping.cat.m ...
- PHP判断手机号运营商(详细介绍附代码)
道理很简单,知道手机号规则 进行正则判断就可以 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131.132.15 ...
- badboy 录制脚本并并发脚本
很久没有研究过接口相关的工具了,一个偶然的机会听说了 badboy,可以录制jemter脚本, 查了资料 还可以并发,于是乎,实践才知道. http://www.badboy.com.au/ 官网,我 ...
- python 嵌套字典比较值,取值
#取值import types allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}}, 'Bob': {'ha ...
- axios配合vue+webpack使用
1.安装引用: cnpm install axios --save-dev 2.在组件中引入: import axios from 'axios'; 3.使用示例: 执行GET请求: // 为给定 I ...
- 记录python学习过程中的一些小心得
1.python中一切皆对象,内置数据结构也是对象.处理一个对象就是利用它带有的方法和属性,对该对象进行处理,一步步达到我们想要的结果. 2.编程时,先构思好我们处理的对象是什么,具有哪些属性和方法, ...
- day9集合以及这段时间的总结 未完待续
随笔: # 可变类型:# 列表(可以存放多个值,可以按索引取值,是有序的),# 字典(字典里面是KEY:VALUE类型,key必须是不可变类型,不能按索引取值 因为它们是无序的,按KEY取值),# 集 ...