HDU - 4747
题目链接:HDU - 4747
#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e5+10;
int n,mx[N<<2],a[N],sum[N<<2],lazy[N<<2],mex[N],cnt,pos[N],res; map<int,int> mp,vis;
#define mid (l+r>>1)
inline void push_up(int p){sum[p]=sum[p<<1]+sum[p<<1|1];mx[p]=max(mx[p<<1],mx[p<<1|1]);
}
void build(int p,int l,int r){lazy[p]=-1;if(l==r){mx[p]=sum[p]=mex[l]; return ;}build(p<<1,l,mid),build(p<<1|1,mid+1,r);push_up(p);
}
inline void upd(int p,int l,int r,int v){sum[p]=(r-l+1)*v,mx[p]=v,lazy[p]=v;}
inline void push_down(int p,int l,int r){if(lazy[p]!=-1) upd(p<<1,l,mid,lazy[p]),upd(p<<1|1,mid+1,r,lazy[p]),lazy[p]=-1;
}
void change(int p,int l,int r,int ql,int qr,int v){if(l==ql&&r==qr) return upd(p,l,r,v),void();push_down(p,l,r);if(qr<=mid) change(p<<1,l,mid,ql,qr,v);else if(ql>mid) change(p<<1|1,mid+1,r,ql,qr,v);else change(p<<1,l,mid,ql,mid,v),change(p<<1|1,mid+1,r,mid+1,qr,v);push_up(p);
}
int ask(int p,int l,int r,int ql,int qr){if(l==ql&&r==qr) return sum[p];push_down(p,l,r);if(qr<=mid) return ask(p<<1,l,mid,ql,qr);else if(ql>mid) return ask(p<<1|1,mid+1,r,ql,qr);else return ask(p<<1,l,mid,ql,mid)+ask(p<<1|1,mid+1,r,mid+1,qr);
}
int query(int p,int l,int r,int ql,int qr,int v){if(l==r) return l;push_down(p,l,r);if(qr<=mid) return query(p<<1,l,mid,ql,qr,v);else if(ql>mid) return query(p<<1|1,mid+1,r,ql,qr,v);else{if(mx[p<<1]>v) return query(p<<1,l,mid,ql,mid,v);else return query(p<<1|1,mid+1,r,mid+1,qr,v);}
}
void solve(){cnt=res=0; vis.clear(); mp.clear();for(int i=1;i<=n;i++) scanf("%lld",&a[i]);for(int i=n;i>=1;i--){if(!mp.count(a[i])) pos[i]=n+1;else pos[i]=mp[a[i]];mp[a[i]]=i;}for(int i=1;i<=n;i++){vis[a[i]]=1;while(vis.count(cnt)) cnt++;mex[i]=cnt;}build(1,1,n);for(int i=1;i<=n;i++){res+=ask(1,1,n,i,n);if(ask(1,1,n,pos[i]-1,pos[i]-1)<=a[i]) continue;int p=query(1,1,n,i,n,a[i]);if(p<pos[i]) change(1,1,n,p,pos[i]-1,a[i]);}cout<<res<<endl;
}
signed main(){while(cin>>n,n) solve();return 0;
}
HDU - 4747相关推荐
- hdu 4747 mex 线段树+思维
http://acm.hdu.edu.cn/showproblem.php?pid=4747 题意: 我们定义mex(l,r)表示一个序列a[l]....a[r]中没有出现过得最小的非负整数, 然后我 ...
- HDU 4747 Mex
4747 思路: 线段树 先求出mex(1,1), mex(1, 2) , mex(1,3),...,mex(1,n)(单调上升),先将这些mex放进线段树里求和 然后再求出next[i]表示下一次出 ...
- HDU 4747 Mex【线段树上二分+扫描线】
[题意概述] 一个区间的Mex为这个区间没有出现过的最小自然数,现在给你一个序列,要求求出所有区间的Mex的和. [题解] 扫描线+线段树. 我们在线段树上维护从当前左端点开始的前缀Mex,显然从左到 ...
- HDU - 4747 Mex(线段树)
题意: 计算 其中mex即为博弈中出现的mex(未出现的最小非负整数). 分析: 有两种方法,递推有点懵(以后再来补QAQ),就写了线段树 想法是每次求以i为起点的区间的mex值的和,最后累加即 ...
- 动态规划总结与题目分类
源博客链接:http://blog.csdn.net/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少 ...
- 『ACM-算法-动态规划』初识DP动态规划算法
一.多阶段决策过程的最优化问题 在现实生活中,有类活 动的过程,由于 它的特殊性,可将过程分成若干个互相阶段.在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果.当阶段决策的选取不是任意确 ...
- (转)dp动态规划分类详解
dp动态规划分类详解 转自:http://blog.csdn.NET/cc_again/article/details/25866971 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间 ...
- DP! | 不要怂!
跟一个博客刷: http://blog.csdn.net/cc_again/article/details/25866971 一.简单基础dp 1.递推 HDU 2084 1 #include < ...
- 《动态规划》— 动态规划分类
动态规划(英语:Dynamic programming,DP)是一种在数学.计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于有重叠子问题和最 ...
- 转:动态规划题目分类
https://blog.csdn.net/cc_again/article/details/25866971 一.简单基础dp 这类dp主要是一些状态比较容易表示,转移方程比较好想,问题比较基本常见 ...
最新文章
- scrollview中嵌套listview产生冲突问题
- Storm【压力测试】- 系列1: 进行简单的压力测试
- C#显示相机实时画面
- G6 图可视化引擎——入门教程——元素及其配置
- MySQL工作笔记-使用rand生成随机数及用随机数填充记录
- python爬取js动态网页_Python 从零开始爬虫(八)——动态爬取解决方案 之 selenium
- rtsp,rtp,gb28181直接转化为html5播放(二)
- 2021-11-17
- Win7 SP1 安装中文语言包
- iNeuOS工业互联网操作系统,设备振动状态监测、预警和分析应用案例
- 1483选票统计(一)(结构体专题)
- 论文阅读《Knowledge Graph Refinement: A Survey of Approaches and Evaluation Methods》
- 基于JSP的电影院售票系统
- 中国线上驾驶游戏市场深度研究分析报告
- 勾股定理计算机语言,勾股定理
- 有Go语言实战培训班吗?go语言开发环境搭建
- 第一章 Hadoop
- 虚拟机中linux磁盘空间不足
- 【OKR案例合集】财务部门及公司级 OKR 案例合集
- Linux 包管理基础:apt、yum、dnf 和 pkg
热门文章
- 题目 1035: [编程入门]自定义函数之字符类型统计
- opencv中step、step1、size、elemSize以及elemSize1区别
- 教师对php作品评语通用,期末教师给学生的评语
- huobi程序化交易项目
- Zotero使用之自定义参考文献格式
- 怎样用360改计算机名称,360随身wifi网络名称怎么修改
- 沪牌-上海牌照-拍牌经验分享: 我是如何三次拍中的?
- Device模块管理设备信息,用于获取手机设备的相关信息,如IMEI、IMSI、型号、厂商等
- TP路由器的ip映射配置
- [OpenAirInterface实战-18] :OAI 软件无线电USRP B200/B210/X300/X310/N300/N310/E310比较