2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)【A题 类型好题】
A. Berstagram
Polycarp recently signed up to a new social network Berstagram. He immediately published n posts there. He assigned numbers from 1 to n to all posts and published them one by one. So, just after publishing Polycarp's news feed contained posts from 1 to n — the highest post had number 1, the next one had number 2, ..., the lowest post had number n.
After that he wrote down all likes from his friends. Likes were coming consecutively from the 1-st one till the m-th one. You are given a sequence a1,a2,…,am (1≤aj≤n), where aj is the post that received the j-th like.
News feed in Berstagram works in the following manner. Let's assume the j-th like was given to post aj. If this post is not the highest (first) one then it changes its position with the one above. If aj is the highest post nothing changes.
For example, if n=3, m=5 and a=[3,2,1,3,3], then Polycarp's news feed had the following states:
before the first like: [1,2,3];
after the first like: [1,3,2];
after the second like: [1,2,3];
after the third like: [1,2,3];
after the fourth like: [1,3,2];
after the fifth like: [3,1,2].
Polycarp wants to know the highest (minimum) and the lowest (maximum) positions for each post. Polycarp considers all moments of time, including the moment "before all likes".
Input
The first line contains two integer numbers n and m (1≤n≤105, 1≤m≤4⋅105) — number of posts and number of likes.
The second line contains integers a1,a2,…,am (1≤aj≤n), where aj is the post that received the j-th like.
Output
Print n pairs of integer numbers. The i-th line should contain the highest (minimum) and the lowest (maximum) positions of the i-th post. You should take into account positions at all moments of time: before all likes, after each like and after all likes. Positions are numbered from 1 (highest) to n (lowest).
3 5
3 2 1 3 3
1 2
2 3
1 3
10 6
7 3 5 7 3 6
1 2
2 3
1 3
4 7
4 5
6 7
5 7
8 8
9 9
10 10
思路:定义两个数组,分别存放不断改变的当前数和某数的位置。然后模拟。QAQ
#include<bits/stdc++.h> using namespace std;
#define int long long
#define N 1000500
struct str{
int L,R;
}st[N];
int arr[N];
int a[N];// 当前的数
int b[N];// 某数的位置
signed main(){
int n,m;
cin>>n>>m;
for(int i=;i<=n;i++){
st[i].L=i;
st[i].R=i;
a[i]=i;
b[i]=i;
}
for(int i=;i<=m;i++)
scanf("%lld",&arr[i]);
for(int i=;i<=m;i++){
if(b[arr[i]]!=){
int weizhi=b[arr[i]];
int temp=a[weizhi-];//前面一个数
swap(a[weizhi],a[weizhi-]);
b[arr[i]]=b[arr[i]]-;
b[temp]=b[temp]+;
st[arr[i]].L=min(st[arr[i]].L,b[arr[i]]);
st[arr[i]].R=max(st[arr[i]].R,b[arr[i]]);
st[temp].L=min(st[temp].L,b[temp]);
st[temp].R=max(st[temp].R,b[temp]);
}
}
for(int i=;i<=n;i++){
cout<<st[i].L<<" "<<st[i].R<<'\n';
}
return ;
}
2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)【A题 类型好题】的更多相关文章
- 2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules)  D. Firecrackers  (贪心,二分)
		题意:有个长度为\(n\)的监狱,犯人在位置\(a\),cop在位置\(b\),你每次可以向左或者向右移动一个单位,或者选择不动并在原地放一个爆竹\(i\),爆竹\(i\)在\(s[i]\)秒后爆炸, ... 
- 2020-2021 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules)  C. Berpizza   (STL)
		题意:酒吧里有两个服务员,每个人每次都只能服务一名客人,服务员2按照客人进酒吧的顺序服务,服务员3按照客人的钱来服务,询问\(q\),\(1\)表示有客人进入酒吧,带着\(m\)块钱,\(2\)表示询 ... 
- 2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest
		目录 Contest Info Solutions A. Berstagram B. The Feast and the Bus C. Trip to Saint Petersburg E. The ... 
- 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)
		A. Find a Number 找到一个树,可以被d整除,且数字和为s 记忆化搜索 static class S{ int mod,s; String str; public S(int mod, ... 
- 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) Solution
		A. Find a Number Solved By 2017212212083 题意:$找一个最小的n使得n % d == 0 并且 n 的每一位数字加起来之和为s$ 思路: 定义一个二元组$< ... 
- Codeforces1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)总结
		第一次打ACM比赛,和yyf两个人一起搞事情 感觉被两个学长队暴打的好惨啊 然后我一直做傻子题,yyf一直在切神仙题 然后放一波题解(部分) A. Find a Number LINK 题目大意 给你 ... 
- codeforce1070 2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred) 题解
		秉承ACM团队合作的思想懒,这篇blog只有部分题解,剩余的请前往星感大神Star_Feel的blog食用(表示男神汉克斯更懒不屑于写我们分别代写了下...) C. Cloud Computing 扫 ... 
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)
		A 思路: 贪心,每次要么选两个最大的,要么选三个,因为一个数(除了1)都可以拆成2和3相加,直到所有的数都相同就停止,这时就可以得到答案了; C: 二分+bfs,二分答案,然后bfs找出距离小于等于 ... 
- 2014-2015 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Preferred)
		I. Sale in GameStore(贪心) time limit per test 2 seconds memory limit per test 512 megabytes input sta ... 
随机推荐
- 扩散:Apache2放开virtualhost,wamp启动apache服务失败
			原文链接:https://blog.csdn.net/weixin_45688623/article/details/101423164 CSDN写过过程了,有点长,这里不赘述了,只写最后我设置的结果 ... 
- PHP替换HTML文件中所有a标签的HREF属性,其他不变
			转载出处:http://www.luanxin.top/index.php/archives/21/ 仿站的时候扒下来的代码a链接总是指向别的地方,要一个一个改的话都要累死了,展示的时候随便点一下就乱 ... 
- keras损失函数详解
			以下信息均来自官网 ------------------------------------------------------------------------------------------ ... 
- 【Pandas数据分析案例】2018年北京积分入户情况分析
			据说,北京落户的难度比加入美国国籍还高.而北京2018年首次实行积分入户制,让我们来分析一下首批通过积分入户拿到北京户口的数据. 首先从北京积分落户官网下载公示名单: 根据表格中的信息,我们主要从以下 ... 
- Gossip协议
			Gossip数据传播协议: Fabric通过将工作负载划分到事务执行(背书和提交)对等节点和事务排序节点,优化了区块链网络性能.安全性和可伸缩性.这种网络操作的解耦需要一个安全.可靠和可伸缩的数据传播 ... 
- spring中使用动态代理(AOP)
			spring是整合了BGLIB和JDK两种动态代理 示例:使用CGLIB代理 public class MyCar { private String color = "blue"; ... 
- React-intl相关使用介绍
			React-intl用于国际化react组件,提供react组件和api来格式化日期.数字,字符等等.其中一个很重要的功能是实现文本翻译,将你所做的中文版应用所有文字转为英文. 关于配置什么的,请参照 ... 
- atomikos 优化JDBC性能
			JDBC performance comes for free with our pooling DataSource classes: AtomikosDataSourceBean for XA-e ... 
- hdu 6180贪心
			题意:有m个工程,一台机器在同一时间只能运行一个工程,告诉你每个工程的起始时间和结束时间,求出最少要多少个机器以及最小的机器总运行时间(机器开始了就不能停了,直到用完该台机器才停止). 题解:由于这里 ... 
- [Vue]vue中路由重定向redirect
			1.重定向的地址不需要接收参数 const routes = [ { path: '/', redirect: '/index'}, { path: '/index', component: inde ... 
