题目链接:fzoj Problem 2190 非提的救赎

Problem 2190 非提的救赎
Accept: 106 Submit: 312
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
正如你所知道从前有一个人叫s_sin,她拥有着坐拥三千舰狼的梦想!然而天不遂人愿当她踏进hentai collection的大门之后,现实让她领略到了无情。身为一个坚强的妹子,她知道即使出门大破,即使十一连抽全是R,也要坚信着“玄不救非,氪不改命”,而自己是一个欧白这样最初的信仰!

有一天s_sin率领着她的舰狼们到达了某海峡,以一个N*M的矩阵表示,每一个元素为w或者b。其中b为暗礁,暗礁上是不允许有舰狼存在的。而s_sin也相信着一个道理,那就是只有把她的舰狼们组成矩形,她才能有足够的信仰在打败了最终boss之后捞到心仪的新舰狼。请问s_sin有多少种获取足够信仰的方法?(即在N*M的矩阵中有多少个全部由w组成的子矩形)

Input
输入第一行为一个正整数N,M表示有N行M列的矩阵。

接下来N行每行有M个字母为b或者w,如描述中所述。

Output
求N*M的矩阵中有多少个全部由w组成的子矩形。

Sample Input
2 3
bbb
www
2 2
bw
wb Sample Output
6
2 Hint
1<=M,N<=2000
Source
福州大学第十二届程序设计竞赛

思路: 我们枚举每一行,把第j列当做是第j根柱子,记W[j] = (1, j)到(i, j)的连续长度。从左向右推——考虑以(i, j)为右下角的矩形个数dp[i][j],我们先找到以W[j]为宽的最大矩形A,用单调栈快速找到矩形左边界l,个数就为 矩形A格子数目 + dp[i][j - l]。

AC代码:

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#define CLR(a, b) memset(a, (b), sizeof(a))
#define fi first
#define se second
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int MAXN = 1e4 +10;
const int INF = 0x3f3f3f3f;
char str[2010][2010];
pii Stack[2010]; int d[2010];
LL dp[2010];
int main()
{int n, m;while(scanf("%d%d", &n, &m) != EOF) {for(int i = 1; i <= n; i++) {scanf("%s", str[i]+1);}for(int j = 1; j <= m; j++) d[j] = 0;LL ans = 0;for(int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {if(str[i][j] == 'w') {d[j]++;}else {d[j] = 0;}dp[j] = 0;}int top = 0; int l;for(int j = 1; j <= m; j++) {while(top && Stack[top-1].fi >= d[j]) top--;Stack[top++] = pii(d[j], j);if(top == 1) {l = Stack[top-1].se;}else {l = Stack[top-1].se - Stack[top-2].se;}int id = Stack[top-1].se;if(d[id] == 0) continue;dp[id] = 1LL * l * Stack[top-1].fi + dp[id - l];ans += dp[id];//cout << dp[id] << endl;}}printf("%lld\n", ans);}return 0;
}

fzoj Problem 2190 非提的救赎 【单调栈】相关推荐

  1. fzu2190---非提的救赎 (单调栈)

    Problem Description 正如你所知道从前有一个人叫s_sin,她拥有着坐拥三千舰狼的梦想!然而天不遂人愿当她踏进hentai collection的大门之后,现实让她领略到了无情.身为 ...

  2. Fzu-2190 非提的救赎 (单调栈)

    Problem Description 正如你所知道从前有一个人叫s_sin,她拥有着坐拥三千舰狼的梦想!然而天不遂人愿当她踏进hentai collection的大门之后,现实让她领略到了无情.身为 ...

  3. leetcode:6080. 使数组按非递减顺序排列【单调栈 + 合并】

    分析 保存一个单调递减的stack,元素是(num, max+t) 遇到大于等于栈顶的,把栈顶的挪出来,然后记录同一次挪出的最大的max_t 如果挪完st还有剩余的话,max_t ++ 然后ans就是 ...

  4. A - 非提的救赎 Fzu-2190 (单调栈)

    Problem Description 正如你所知道从前有一个人叫s_sin,她拥有着坐拥三千舰狼的梦想!然而天不遂人愿当她踏进hentai collection的大门之后,现实让她领略到了无情.身为 ...

  5. [NOI Online 2022 提高组] 丹钓战(单调栈 + 树状数组 / 主席树)

    problem luogu-P8251 solution 按照题意模拟单调栈. 求出对于 iii 而言,当时单调栈的栈顶元素记为 pip_ipi​. 如果到 iii 时,栈顶已经为 pip_ipi​ ...

  6. 0x11.基本数据结构 — 栈与单调栈

    目录 一.栈 0.AcWing 41. 包含min函数的栈 (自己造栈) 1.AcWing 128. 编辑器 (对顶栈) 2.AcWing 129. 火车进栈 3.AcWing 130. 火车进出栈问 ...

  7. Largest Rectangle in a Histogram HDU - 1506 解题思路 单调栈

    原题目 Problem Description A histogram is a polygon composed of a sequence of rectangles aligned at a c ...

  8. 后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]

    题目链接 题目大意: 给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次 比如数列 5 6 ...

  9. 【数据结构】单调栈和单调队列 详解+例题剖析

    算法:单调栈和单调队列 一.单调栈和单调队列 二.单调栈例题 1.模板题入门 2.不懂不要急,看这道题 三.单调队列例题 1.入门 2.进阶 一.单调栈和单调队列 单调栈和单调队列与普通的栈,队列不同 ...

最新文章

  1. 【青少年编程】【蓝桥杯】水仙花数
  2. php xml写入数据库中,PHP读取xml并写入数据库示例
  3. 为什么计算机硬盘要从c盘开始,电脑分区为何从C盘开始?英特尔科普
  4. Unity C#笔记 协程详解(转)
  5. uc浏览器TV版最新版本功能简介
  6. 开启mongodb数据库命令行_【赵强老师】使用MongoDB的命令行工具:mongoshell
  7. 安全云服务的定义和特征
  8. Updatepanel jquery 失效解决方案
  9. [Tips]git cannot lock ref
  10. Java——三大分支:JavaSE、JavaEE、JavaME(概念理解)
  11. SMOTE算法原理及程序python(新手版)
  12. 如何在vue中插入语音提示
  13. Tensorflow-saver模型参数保存及载入
  14. 编码,隐匿在计算机软硬件背后的语言读书笔记(9)
  15. Conflux 联合创始人、CTO伍鸣博士出席杭州钱江世纪城重点发展企业座谈会
  16. java类注释 写作规范_Java标准注释及规范
  17. 跨城实践中,腾讯如何应用 Apache Pulsar
  18. TypeError: slice indices must be integers 数组索引必须是整数
  19. 三元表达式(三目运算)
  20. 捏碎这个“蛋蛋”,压力从此和你说再见!

热门文章

  1. 基于thinkphp5的简单的下拉菜单二级联动
  2. word文档无法编辑的解决办法
  3. 【STM8】IAR 项目新建步骤
  4. 前后台端分离 跨域SESSION 失效问题
  5. 找出列表中重复数的下标
  6. 华为KubeEdge在边缘计算的实践
  7. 计算机录屏幕和声音的软件是什么,怎么样录制电脑的屏幕和声音?可以进行电脑录像的软件|录制电脑屏幕的方法...
  8. SQL中的declare用法
  9. PHP流量卡发货查单系统源码 流量卡物流发货运单号查询平台 一键安装版
  10. 电子商务购物网站的设计与实现(论文+源码)_kaic