CodeForces 631C
来源:互联网 发布:cors网络账号怎么获取 编辑:程序博客网 时间:2024/06/16 06:16
这题说起来还是得把握题目隐含的提示找出解题思路。
题意:给出一个长度为n的序列下面会有m个操作,每个操作有两个数t,r,当t等与1时将序列前r个数升序排列,当t为2时将序列前r个数降序排列,最后输出最后的序列。
思路:需要注意到的是这m个操作中最大r前面的所有操作全部失效,通过这个规律可以找最大r然后填数。
代码如下:
#include<bits/stdc++.h>using namespace std;typedef long long LL;#define INF 0x3f3f3f3fint t[200005],r[200005],a[200005],b[200005];int main(){ int n,m,ti,ri; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } int pos=0,len=0; for(int i=0;i<m;i++) { scanf("%d%d",&ti,&ri); while(len&&ri>=r[len-1]) len--; t[len]=ti;r[len]=ri;len++; } r[len++]=0; sort(b+1,b+1+r[0]); int x=1,y=r[0]; for(int i=0;i<len;i++) { for(int j=r[i-1];j>r[i];j--) { if(t[i-1]==1) a[j]=b[y--]; else a[j]=b[x++]; } } printf("%d",a[1]); for(int i=2;i<=n;i++) { printf(" %d",a[i]); } printf("\n");}
0 0
- codeforces 631c
- codeforces 631c Report
- Codeforces 631C:Report
- codeforces 631C Report
- Codeforces 631C-Report
- CodeForces 631C
- CodeForces 631C
- CodeForces 631C Report
- Codeforces 631C Report
- Codeforces 631C Report【其他】
- CodeForces 631C Report(找规律)
- Codeforces 631C Report 【单调栈】
- codeforces 631C Report(单调栈)
- Codeforces 631C Report排序+思维
- Codeforces 631C Report【思维脑洞题】
- 【Codeforces 631 C Report】+ 单调栈
- CodeForces 631 C.Report(单调栈)
- CodeForces 631C.Report(单调栈)
- Sql语句中,Contains与Like查询结果不相同的问题
- Java正则表达式
- javaee之el表达式的运用
- Javascript使用postMessage对iframe跨域通信
- equals&&hashCode&&toString函数
- CodeForces 631C
- sql中contains,like,patindex ,charindex和freetext语句的区别?
- Spring探究(1)——功能特性
- Erasure Code
- .net 视频转换
- Eclipse安装maven插件报错
- GIS理论(墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System)
- hdoj-4828-Grids
- MySQL Memory 存储引擎浅析