Monotonic Renumeration- codeforce
题解
依次判断每个位置是否能有两个取值,即\(a_i = a_{i - 1}\)或\(a_i=a_{i - 1} + 1\)。判断条件:没有数与它相同,或者它不落在两个相同的数之间。
代码
int main()
{cin >> n;Rep(i, 1, n) {cin >> a[i];q[a[i]] = i;}int ma = 0;LL ans = 1, cnt = -1;Rep(i, 1, n) {ma = max(ma, q[a[i]]);if (ma == i) {cnt++;if (cnt) ans = (ans * 2) % mod;}}cout << ans << endl;return 0;
}
void pushDown(int root) {add[lson] += add[root];add[rson] += add[root];add[root] = 0;
}void Update(int l, int r, int root, int L, int R, int x) {if (l > R || r < L) return;if (L <= l && r <= R) {add[root] += x;return;}if (add[root]) pushDown(root);int mid = (l + r) >> 1;Update(l, mid, lson, L, R, x);Update(mid + 1, r, rson, L, R, x);
}int Find(int l, int r, int root, int pos) {if (l == r) return add[root];if (add[root]) pushDown(root);int mid = (l + r) >> 1;int ans = 0;if (pos <= mid) ans = Find(l, mid, lson, pos);else ans = Find(mid + 1, r, rson, pos);return ans;
}int main()
{cin >> n;Rep(i, 1, n) cin >> a[i];Rep(i, 1, n) q[a[i]] = max(q[a[i]], i);Rep(i, 1, n) if (!use[a[i]]) {use[a[i]] = 1;Update(1, n, 1, i, q[a[i]], 1);}vis[a[1]] = 1;LL ans = 1;Rep(i, 2, n) if (!vis[a[i]]) {vis[a[i]] = 1;if (Find(1, n, 1, i) == 1) ans = (ans * 2) % mod;}cout << ans << endl;return 0;
}
转载于:https://www.cnblogs.com/zgglj-com/p/10249317.html
Monotonic Renumeration- codeforce相关推荐
- 补题Codeforces 1102E. Monotonic Renumeration
这个题还是不太懂,下面附上的是大佬的题解(https://zhanghuimeng.github.io/post/codeforces-1102e-monotonic-renumeration/) E ...
- Monotonic Renumeration
https://codeforces.com/contest/1102/problem/E C++版本一 题解:二分 先从前往后找到每个数最先出现的位置,然后从后往前找到最后出现的位置 然后从头开始遍 ...
- [转][Timer学习]wall time和monotonic time
在一些系统调用中需要指定时间是用CLOCK_MONOTONIC还是CLOCK_REALTIME,以前总是搞不太清楚它们之间的差别,现在终于有所理解了. CLOCK_MONOTONIC是monotoni ...
- Codeforce 水题报告(2)
又水了一发Codeforce ,这次继续发发题解顺便给自己PKUSC攒攒人品吧 CodeForces 438C:The Child and Polygon: 描述:给出一个多边形,求三角剖分的方案数( ...
- 单调队列 Monotonic Queue / 单调栈 Monotonic Stack
2018-11-16 22:45:48 一.单调队列 Monotone Queue 239. Sliding Window Maximum 问题描述: 问题求解: 本题是一个经典的可以使用双端队列或者 ...
- codeforce 1311 C. Perform the Combo 前缀和
You want to perform the combo on your opponent in one popular fighting game. The combo is the string ...
- 2019牛客多校Monotonic Matrix
Monotonic Matrix 题意: 问有多少个n * m的矩阵A满足一下情况:答案mod 1e9+7 矩阵A的所有元素∈{0,1,2} Ai,j<=Ai+1,jA_{i,j}<=A_ ...
- C#LeetCode刷题之#896-单调数列(Monotonic Array)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3760 访问. 如果数组是单调递增或单调递减的,那么它是单调的. ...
- 2017.5.28 codeforce h题思考记录
并没有报codeforce 但有人想让我帮他看题,于是就做了 大概意思就是,给你200个空,让你在200个空中放字母, 再自己设计一个串,要求自己设计的这个串在这放着200个字母的串中作为子串出 ...
- 【CodeForce】559B Equivalent Strings 等效字符串
[CodeForce]559B Equivalent Strings 等效字符串 B. Equivalent Strings time limit per test2 seconds memory l ...
最新文章
- 配置静态路由使用出站接口和下一跳IP的差别
- Ubuntu环境搭建系列—JavaEE篇
- c语言图像函数怎么用,请教 怎么才能用C输出一个函数的图像?大侠 帮帮忙啊...
- centos mysql无法启动 sock_linux 下mysql无法启动 mysql.sock
- OFCMS 项目开源 java cms 系统 内容管理系统
- 高通第一财季营收107亿美元 净利润超过30亿美元
- 转 PHP函数---$_Get()和$_Post()的用法
- iOS 自定义底部tabbar加号按钮实现方法
- 教你如何用Python轻轻松松操作Excel、Word、CSV,一文就够了,赶紧码住!!!
- 15 使用计算机应遵守行业道德规范,信息会考答案~没考的看下!
- matlab子函数中使用全局变量的使用方法
- SSD原理解读-从入门到精通
- 数字化背景下的经济社会发展的新特征 新趋势
- 学习“基于深度学习的故障诊断”开源
- java closed_有关Java中isClosed()和isConnected()的一些误解
- 个人NAS家庭服务器解决方案概况
- (纪中)2223. 母鸡下蛋(hen)
- PX4源码分析__传感器数据“sensor_combined”的来龙去脉
- kafka中topic、partition、broker、consumerGroup、consumer之间的关系、区别及存在意义
- 微信小程序抓包方法汇总
热门文章
- 修改linux文件权限命令:chmod超级详细讲解
- movcms能安装PHP吗,LzCMS-博客版 手动安装方法
- 树展示 移动端_企业快速搭建移动BI轻应用,怎么少得了这款BI工具
- 条带装箱问题 Strip packing problem是什么
- 数据库学习笔记3-隔离级别 Read Uncommitted
- 解决button多次重复点击
- java反射 javabean_Java反射之模仿JavaBean接收表单参数.
- oracle日期基本数据,oracle日期时间函数总结
- 单片机4层电梯设计c语言,详解基于单片机的四层电梯控制系统的设计与实现,Proteus仿真和程序代码...
- GSON简单实用及常用方法(附 .jar 地址)