CF526 F Pudding Monsters
题意
求连续段数。
n<=3e5
思路
- 析合树板题(然而并不会)
- 考虑分治求。
- 讨论max与min在左右两边的四种情况就行了。
- O ( n l o g n ) O(n log n) O(nlogn)
#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 10, Z = 3e5 * 2;
typedef long long ll;
int a[N], n;
int cnt[4 * N];
ll ans;
int b[N], no[N], len;int smx[N], smi[N], pmx[N], pmi[N], omx[N], omi[N];void divide(int L, int R) {if (L == R) ans++;if (L >= R) return;int mid = L + R >> 1;smx[mid + 1] = 0, smi[mid + 1] = n + 1;pmx[mid] = 0, pmi[mid] = n + 1;for(int i = mid + 1; i <= R; i++) {pmx[i] = max(pmx[i - 1], a[i]);pmi[i] = min(pmi[i - 1], a[i]);}for(int i = mid; i >= L; i--) {smx[i] = max(smx[i + 1], a[i]);smi[i] = min(smi[i + 1], a[i]);}int mi = mid, mx = mid;omx[mid] = omi[mid] = mid;for(int i = mid + 1; i <= R; i++) {while(mx >= L && smx[mx] <= pmx[i]) mx--;while(mi >= L && smi[mi] >= pmi[i]) mi--;omx[i] = mx, omi[i] = mi;}ll zs = 0;//part1for(int i = mid + 1; i <= R; i++) {int loc = i + pmi[i] - pmx[i];if (omi[i] < loc && omx[i] < loc && loc <= mid) zs++;}//part2for(int i = mid + 1; i <= R; i++) cnt[Z + i - pmx[i]] = 0;for(int i = mid + 1; i <= R; i++) {for(int j = omx[i - 1]; j > omx[i]; j--)cnt[Z + j - smi[j]] ++;for(int j = omi[i - 1]; j > omi[i]; j--)cnt[Z + j - smi[j]] --;if (omx[i] < omi[i]) zs += cnt[Z + i - pmx[i]];}//part3for(int i = mid + 1; i <= R; i++) cnt[Z + i + pmi[i]] = 0;for(int i = mid + 1; i <= R; i++) {for(int j = omx[i - 1]; j > omx[i]; j--)cnt[Z + j + smx[j]] --;for(int j = omi[i - 1]; j > omi[i]; j--)cnt[Z + j + smx[j]] ++; if (omi[i] < omx[i]) zs += cnt[Z + i + pmi[i]];}//part4for(int i = mid + 1; i <= R; i++) cnt[Z + i] = 0;for(int i = L; i <= mid; i++) cnt[Z + smx[i] - smi[i] + i] ++;int zq = mid;for(int i = mid + 1; i <= R; i++) {while(zq > omx[i]){cnt[Z + smx[zq] - smi[zq] + zq] --;zq--;}while(zq > omi[i]) {cnt[Z + smx[zq] - smi[zq] + zq] --;zq--;}zs += cnt[Z + i];}ans += zs;divide(L, mid), divide(mid + 1, R);
}int main() {freopen("f.in", "r", stdin);cin>>n; for(int i = 1; i <= n; i++) {int x,y;scanf("%d %d",&x,&y);a[x] = y;}divide(1, n);cout<<ans<<endl;
}
CF526 F Pudding Monsters相关推荐
- [CF 526 F] Pudding Monsters(单调栈 + 线段树)
CF526F Pudding Monsters problem solution code problem luogu翻译 solution observation :每行每列恰好有一个棋子,所以如果 ...
- 【机房练习赛 5.15】奇袭 CF526F Pudding Monsters
题面 Pudding Monsters 问题描述 由于各种原因,桐人现在被困在 UnderWorldUnder WorldUnderWorld(以下简称 UWUWUW)中,而 UWUWUW 马上要迎来 ...
- Codeforces 436D Pudding Monsters
题意简述 开始有无限长的一段格子,有n个格子种有布丁怪兽,一开始连续的布丁怪兽算一个布丁怪兽. 每回合你可以将一个布丁怪兽向左或右移动,他会在碰到第一个布丁怪兽时停下,并与其合并. 有m个特殊格子,询 ...
- 【CF526F】Pudding Monsters
题意: 给你一个排列pi,问你有对少个区间的值域段是连续的. n≤3e5 题解: bzoj3745 转载于:https://www.cnblogs.com/yinwuxiao/p/9474652.ht ...
- 【做题记录】max-min+1=len 区间计数
(来源:XJ高质量原创题) 原题地址 弱化版:CF526F Pudding Monsters 弱化版 题意:\(n\times n\) 的棋盘上有 \(n\) 颗棋子,每行每列都有且仅有一颗棋子,求出 ...
- HTML打造动漫人物,19个搭配很酷的卡通人物网站设计欣赏
19个搭配很酷的卡通人物网站设计欣赏 11月 6, 2014 评论 Sponsor 使用插画.卡通人物这些设计元素来搭配网站是很不错的idea,因为他很容易让用户记住你的网站,特别是绘制有趣的卡通人物 ...
- [Python-Pygame]无中生有开发自己的2D动作游戏生成敌人
一.构建父类 无论什么样的敌人,无论其行动.AI如何,能力强弱.大小各异,它们总会有一些共同的属性,例如无论什么样的敌人都具有生命值.攻击力等基本的属性. 从这里出发,我们可以使用类的继承来简化代码量 ...
- 中国成为应用程序开发商的新战场
对 全球的应用程序开发商来说,中国正在成为他们彼此争斗的下一个战场,但事实证明,打入这个世界最大的智能手机市场是非常不容易的. 中国:App的下一个主战场 全球最大的应用程序开发商越来越多地将目光投向 ...
- 日常英语---十一、MapleStory/Monsters/Level 201-210(Dark Demon Eagle Rider)
日常英语---十一.MapleStory/Monsters/Level 201-210(Dark Demon Eagle Rider) 一.总结 一句话总结:骑着鹰的快速飞行的恶魔,进入地图后跟着你. ...
最新文章
- 为何 Windows 10X 无法延续 Windows 的成功?
- js自定义函数及参数问题
- ASP.NET 如何动态修改 title Meta link标签
- nginx同域名代理tomcat不同目录下的文件
- 读书推荐:2017 第一期
- Delphi替换PE图标资源
- Apache日志配置
- php中des加密cbc模式,php中加密解密DES类的简单使用方法示例
- IOS10.8.2安装
- 在Zephyr RTOS上实现一个轮询系统
- CH24C 逃不掉的路
- idea2020不显示光标所在位置的方法名
- 懒人分析jQuery源码
- 汉字笔画动图怎么做_怎么用flash制作汉字笔顺的动画
- matlab:matlab神经网络工具的使用
- mysql timestamp毫秒_MySQL的Timestamp插入丢失毫秒的问题
- 硕士转计算机科学,普利茅斯大学计算机科学(转专业)理学硕士研究生申请要求及申请材料要求清单...
- 阿里云Oss水印图片处理Utils
- 推荐一个 github 项目 spider163,抓取网络数据,歌曲评论等数据
- 精简高效的CSS命名准则和方法
热门文章
- 存储 NAB 2019: Infortrend赢得Video Edge颁发的Future最佳表现奖
- docker启动Tomcat登录网页显示404错误解决方案
- Windows 禁用WIn+L锁定系统快捷键
- h5 img js 点击图片放大_网页对应图片点击放大 html+js
- 求java特色队名_有特色的队名和口号运动会
- 每日餐领外卖券外卖优惠券cps系统外卖券CPS系统公众号小程序源码
- 国内服务器安装ServerStatus探针
- java收集器Collector
- 平面设计中的字体设计风格原则有哪些
- 【天光学术】文艺美学论文:美学视角下“隐秀”与“幽玄”的对比分析(节选)