CSA Round #53 (Div. 2 only) Histogram Partition(模拟)
传送门
题意
给出一个数组A,你有一个数组B(一开始全为0),询问多少次操作后B转化为A
一次操作:选择一段区间,加上某个正整数
分析
构建一个栈,
输入一个数,若当前栈空或栈顶元素比输入小,则加入栈中,否则若大于栈顶元素,则删去栈顶元素,放入输入元素,复杂度O(n)
trick
代码
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define F(i,a,b) for(int i=a;i<=b;++i)
#define R(i,a,b) for(int i=a;i<b;++i)
#define mem(a,b) memset(a,b,sizeof(a))
int n;
stack<int>s;
int ans;
int main()
{
   cin >> n;
   F(i, 0, n)
   {
      int val = 0;
      if (i < n) cin >> val;
      if (!s.empty() && s.top() > val) {s.pop(); s.push(val); ans++;}
      if (s.empty() || s.top() < val) s.push(val);
   }
   cout << ans << endl;
   return 0;
}
												
											CSA Round #53 (Div. 2 only) Histogram Partition(模拟)的更多相关文章
- Codeforces Round #368 (Div. 2) B. Bakery (模拟)
		
Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...
 - BestCoder Round #53 (div.1)
		
Problem A: 题目大意: 给出以节点1为根的一棵树A,判断它是否是特殊的.一棵树是特殊的当且仅当不存在和它不完全相同的一棵树B,使得A中点i到点1的距离和B中相等. 题解: 假设一个点x的深度 ...
 - hdu 5424 Rikka with Graph II (BestCoder Round #53 (div.2))(哈密顿通路判断)
		
http://acm.hdu.edu.cn/showproblem.php?pid=5424 哈密顿通路:联通的图,访问每个顶点的路径且只访问一次 n个点n条边 n个顶点有n - 1条边,最后一条边的 ...
 - HDU 5432 Rikka with Tree (BestCoder Round #53 (div.2))
		
http://acm.hdu.edu.cn/showproblem.php?pid=5423 题目大意:给你一个树 判断这棵树是否是独特的 一颗树是独特的条件:不存在一颗和它本身不同但相似的树 两颗树 ...
 - CodeForce edu round 53 Div 2. D:Berland Fair
		
D. Berland Fair time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
 - Educational Codeforces Round 53 Div. 2翻车记
		
A:差点开场懵逼.只要有相邻两位不同就可以作为答案. #include<iostream> #include<cstdio> #include<cmath> #in ...
 - csa Round #73 (Div. 2 only)
		
Three Equal Time limit: 1000 msMemory limit: 256 MB You are given an array AA of NN integers betwe ...
 - csa Round #66 (Div. 2 only)
		
csa66 Risk Rolls Time limit: 1000 msMemory limit: 256 MB Alena and Boris are playing Risk today. W ...
 - CSA Round #50 (Div. 2 only) Min Swaps(模拟)
		
传送门 题意 给出一个排列,定义\(value为\sum_{i=1}^{n-1}abs(f[i+1]-f[i])\) \(swap(a[i],a[j])(i≠j)为一次交换\),询问最少的交换次数使得 ...
 
随机推荐
- javascript 返回上一页面
			
<a href="<a href="javascript :history.back(-1)">返回上一页</a>或<a href=& ...
 - Grid++Report设置显示固定行数
			
一.要实现的功能打印的报表显示固定的行数,并且设置字段的文字可以自动换行二.设置步骤1.鼠标左键单击“明细网格”栏,在右侧属性窗口中设置“追加空白行”属性值为:是:“追加空白行在后”属性值为:是.2. ...
 - 超实用的 Nginx 极简教程,覆盖了常用场景(转)
			
概述 安装与使用 安装 使用 nginx 配置实战 http 反向代理配置 负载均衡配置 网站有多个 webapp 的配置 https 反向代理配置 静态站点配置 搭建文件服务器 跨域解决方案 参考 ...
 - Java面试-Hibernate总结
			
1 Hibernate的检索方式 Ø 导航对象图检索(依据已经载入的对象.导航到其它对象. ) Ø OID检索(依照对象的OID来检索对象. ) Ø HQL检索(使用面向对象的HQL查询语言. ...
 - Xcode6 新特性
			
苹果在WWDC 2014上对新版Xcode(Xcode 6 Beta版)并没有提及过多.但它却是开发人员不能忽视的一部分.Xcode 6 Beta版为设计和创建软件引入了新方法,更加关注功能和一些改善 ...
 - linux环境下安装的activemq的输出日志
			
activemq输出日志的位置: activemq/data/activemq.log 查看activemq.log文件即可.
 - 云计算系列——HIVE1.2.1 环境搭建
			
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...
 - Cocos2d-x之CCMenu理解
			
Menu创建菜单: Cocos2d-x下的菜单创建包括: 1.CCMenuItemFont 字体按钮创建 CCMenuItemFont * onlineVideo = MenuItemFont: ...
 - LVS项目介绍
			
LVS项目介绍 章文嵩 (wensong@linux-vs.org) 转自LVS官方参考资料 2002 年 3 月 本文介绍了Linux服务器集群系统--LVS(Linux Virtual Serve ...
 - 测试覆盖率Emma工具使用
			
Emma使用与分析 #什么是Emma EMMA 是一个开源.面向 Java 程序测试覆盖率收集和报告工具.它通过对编译后的 Java 字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种 ...