Codeforces 631C Report
来源:互联网 发布:linux添加sgid权限 编辑:程序博客网 时间:2024/05/21 19:21
题意:
给出一个2e5的数组,有两种操作
1.对【 1 , X 】升序排列
2.对【 1 , X 】降序排列
求最终的数组
思路:
单调栈维护有效操作区间后,按序填入每个位置上的数即可。
代码:
#include <bits/stdc++.h>using namespace std;const int MAXN = 2e5 + 7;const int INF = 0x3f3f3f3f;int a[MAXN],b[MAXN],c[MAXN],aa[MAXN];int main(){int n, m, top;while (cin >> n >> m){for (int i = 1; i <= n; i++) cin >> a[i], aa[i] = a[i];b[0] = INF, top = 0;for (int i = 0; i < m; i++) {int x, y;cin >> x >> y;while (b[top] <= y) {top--;}top++;b[top] = y;c[top] = x;}b[top + 1] = 0;sort(aa + 1, aa + b[1] + 1);int pos = b[1], l = 1, r = b[1];for (int i = 1; i <= top; i++) {int len = b[i] - b[i + 1];if (c[i] == 1) {for (int j = 0; j < len; j++) {a[pos--] = aa[r--];}}else {for (int j = 0; j < len; j++) {a[pos--] = aa[l++];}}}for (int i = 1; i <= n; i++) cout << a[i] << ' ';cout << endl;}//system("pause");}
阅读全文
0 0
- 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 631C Report 【单调栈】
- codeforces 631C Report(单调栈)
- Codeforces 631C Report排序+思维
- Codeforces 631C Report【思维脑洞题】
- 【Codeforces 631 C Report】+ 单调栈
- CodeForces 631 C.Report(单调栈)
- CodeForces 631C.Report(单调栈)
- Codeforces Round #344 (Div. 2) 631C Report(脑洞+stl)
- Codeforces Round #344 (Div. 2) C. Report
- Codeforces Round #344 (Div. 2) C. Report
- Android数据库增删改查
- Spring @Autowired注解私有属性(无set方法)
- 第12周 【项目一】Prim算法以及Kruskal算法的验证
- mt6735 [Speech App]使用velcom卡呼叫其他运营商号码回铃声叠加
- HTTP协议
- Codeforces 631C Report
- Android 清除缓存详细实现(显示缓存大小)
- Ubuntu 16.04 apt终端命令的使用以及软件的安装和卸载
- idea 激活地址填写
- Unity5.x EventSystem事件系统
- Java学习回顾-对象在内存中的加载过程
- CentOS7 64位下MySQL5.7安装与配置(YUM)
- 数据结构上机实践第十周项目1
- 元数据编辑器--(坑集锦)