【BZOJ1057】【codevs1428】棋盘制作,悬线法
传送门1
传送门2
思路:
比较简单的悬线法
相关资料自行百度
看一会就能明白的
反正这个就是模板题啦(敲桌)
虽然说好不发水题了,但这次发上来也就是给大家也给自己当个板子使……
代码:
#include<cstdio>
#include<iostream>
#define M 2004
using namespace std;
int n,m,ans1,ans2;
bool a[M][M];
int b[M],c[M],h[M][M],l[M][M],r[M][M];
int in()
{
int t=0;char ch=getchar();
while (ch>'9'||ch<'0') ch=getchar();
while (ch>='0'&&ch<='9') t=(t<<1)+(t<<3)+ch-48,ch=getchar();
return t;
}
main()
{
n=in();m=in();
for (int i=1;i<=n;++i)
for (int j=1;j<=m;++j) a[i][j]=in();
for (int i=1;i<=m;++i) l[0][i]=0,r[0][i]=m+1;
for (int i=1;i<=n;++i)
{ c[m+1]=m+1;
b[1]=0;
for (int j=2;j<=m;++j)
if (a[i][j]^a[i][j-1]) b[j]=b[j-1];
else b[j]=j-1;
c[m]=m+1;
for (int j=m-1;j;--j)
if (a[i][j]^a[i][j+1]) c[j]=c[j+1];
else c[j]=j+1;
for (int j=1;j<=m;++j)
{ if (i==1||(a[i][j]^a[i-1][j]))
h[i][j]=h[i-1][j]+1,
l[i][j]=max(l[i-1][j],b[j]+1),
r[i][j]=min(r[i-1][j],c[j]-1);
else
h[i][j]=1,
l[i][j]=b[j]+1,
r[i][j]=c[j]-1;
ans1=max(ans1,h[i][j]*(r[i][j]-l[i][j]+1));
int t=min(h[i][j],r[i][j]-l[i][j]+1);
ans2=max(ans2,t*t);
}
}
printf("%d\n%d",ans2,ans1);
}
【BZOJ1057】【codevs1428】棋盘制作,悬线法相关推荐
- 【BZOJ-30391057】玉蟾宫棋盘制作 悬线法
3039: 玉蟾宫 Time Limit: 2 Sec Memory Limit: 128 MB Submit: 753 Solved: 444 [Submit][Status][Discuss] ...
- [ZJOI2007]棋盘制作 悬线法dp 求限制下的最大子矩阵
https://www.luogu.org/problemnew/show/P1169 第一次听说到这种dp的名称叫做悬线法,听起来好厉害 题意是求一个矩阵内的最大01交错子矩阵,开始想的是dp[20 ...
- 洛谷-P1169 棋盘制作(悬线法)
国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个 8 × 8 8×8 8×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳 ...
- 洛谷P1169 棋盘制作(悬线法)
题目链接:https://www.luogu.org/problemnew/show/P1169 #include<bits/stdc++.h> #define fi first #def ...
- bzoj 1057: 棋盘制作(悬线法)
1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 2311 Solved: 1146 [Submit][St ...
- P1169 [ZJOI2007]棋盘制作(悬线法)
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...
- P1169 [ZJOI2007]棋盘制作 DP悬线法
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白 ...
- [ZJOI2007] 棋盘制作(单调栈 / DP悬线法)
problem 洛谷链接 solution1-单调栈 很容易想到,预处理出每个点向上最大能延伸的长度,然后对每个点求一个矩阵面积. 然后思考优化,不难想到每次对一行进行求解. 每一行的所有列一起构成了 ...
- 最大子矩阵问题悬线法 学习小结
最近在写dp的题目 但是我这个同学又又又又生病了 学习了一下多叉树的背包问题和最大子矩阵的问题,还有攒了几道期望,先总结一下矩阵问题: 问题模型: 在一个给定的矩形中有一些障碍点,找出内部不包含障碍点 ...
最新文章
- 人工智能的挑战远未到来
- 通过代码获取Bitmap图片资源
- elif在python中啥意思_python中elif 结构语句怎么判断?
- emiya-canvas.js 解决ios下拍照倾斜与canvas高清屏下绘图模糊问题 1
- 环信SDK 踩坑记webIM篇(一)
- Extjs4.2——bbar的默认类型(xtype)
- s3 java_java – 我们可以迭代Amazon S3中的完整对象集
- 通过经典题目来理解多种闭包实现方式
- git多系统协作时换行符问题
- 【伸手党福利】开发人员重装系统顺序
- R语言manova函数稳健多元方差分析(Robust one-way MANOVA)、rrcov包中的wilks.test函数稳健单向MANOVA、vegan包的adonis函数非参数Manova等效
- 虚拟服务器忘记密码,Win7系统下VMware虚拟机忘记开机密码如何解决
- ..\OBJ\PRESSURE_SYSTEM.axf: Error: L6218E: Undefined symbol FLASH_ErasePage (referred from flash.o).
- gem5-gpu 运行 PARSEC2.1
- 【Linux】树状目录结构
- 《Python编程:从入门到实践》答案
- 搭建开发环境——Python实战:Web App 开发 Day 01
- Hive动态分区和分桶
- uwp windows_如何在Windows 10的UWP游戏中监视FPS
- 使用C#实现一个PPT遥控器
热门文章
- linux+oracle磁盘空间,Linux下Oracle软件、数据文件等所在的磁盘分区空间不足的解决思路...
- python在scatter中添加图例_如何向matplotlib散点图添加图例
- 文字超过省略_纯CSS实现“文本溢出截断省略”的几种方法
- 设计模式笔记二十一:状态模式
- 2021-06-20 pip有时候需要加上--user安装才好使
- LaTeX youngtab包——组合数学中棋盘格的绘制
- jieba分词 ‘float‘ object has no attribute ‘decode‘ 解决方法
- 统计学习方法第二版知识点合集 - 自用笔记
- 欢迎各位小伙伴们关注我的公众号,可以随时跟我在微信上进行交流
- CI/CD是什么?如何理解持续集成、持续交付和持续部署