HDU 3410【单调栈】
2024-09-08 11:27:58
思路:
单调栈。
鄙人的记忆:按当前为最大值的两边延伸就是维护单调递减栈。
//#include <bits/stdc++.h>
#include <iostream>
#include <stack>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N=50000+10;
struct asd{
int id;
int left,right,w;
};
int n,a[N];
int ans[N][2];
stack<asd>q;
int main()
{
while(!q.empty())
q.pop();
int T,cas=1;
scanf("%d",&T);
while(T--)
{
asd now,nex;
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
now.id=1;
now.left=now.right=1;
now.w=a[1];
q.push(now);
for(int i=2;i<=n;i++)
{
nex.id=i;
nex.left=nex.right=i;
nex.w=a[i];
while(!q.empty()&&q.top().w<a[i])
{
now=q.top();q.pop();
ans[now.id][0]=now.left!=now.id?now.left:0;
ans[now.id][1]=now.right!=now.id?now.right:0;
if(!q.empty())
q.top().right=now.id;
nex.left=now.id;
}
q.push(nex);
}
while(!q.empty())
{
now=q.top();q.pop();
ans[now.id][0]=now.left!=now.id?now.left:0;
ans[now.id][1]=now.right!=now.id?now.right:0;
if(!q.empty())
q.top().right=now.id;
}
printf("Case %d:\n",cas++);
for(int i=1;i<=n;i++)
printf("%d %d\n",ans[i][0],ans[i][1]);
}
return 0;
}
最新文章
- eclipse 突然 一直在loading descriptor for XXX (XXX为工程名)Cancel Requested
- 自定义子tabBar
- .net异步编程
- mybatisforeach循环,传入多个参数
- hashCode()和toString()
- C#实现文件增量备份
- [转载]charisma-master 加载慢的原因及解决方法
- win8系统中PL/SQL Developer连接Oracle出现的问题
- Swift - 纯代码实现页面segue跳转,以及参数传递
- js定时器之setTimeout的使用
- MySQL备份恢复-mysqldump原理
- 吴恩达机器学习笔记18-多类别分类:一对多(Multiclass Classification_ One-vs-all)
- LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数
- hdu1753-大明A+B-(java大数)
- JavaScript写计算器
- 转转转!!java基础一些静态代码块等知识点
- 使用canvas绘制渐变色矩形和使用按键控制人物移动
- Codeforces 106A:Card Game
- 【BZOJ】3091: 城市旅行 Link-Cut Tree
- intellij自动生成java代码注释(java文件注释和方法注释)
热门文章
- 列举Python常用数据类型并尽量多的写出其中的方法
- Coin和Token有什么区别
- 【linux】自动删除7天前的文件
- systemclock sleep 睡眠
- java.lang.UnsupportedClassVersionError: com/dw/Function : Unsupported major.minor version 52.0
- 3D文字特效
- 《CSS权威指南(第三版)》---第七章 基本视觉格式化
- 脚本简介jQuery微信开放平台注册表单
- linux命令学习笔记(51):lsof命令
- ACM学习历程—HDU5265 pog loves szh II(策略 &;&; 贪心 &;&; 排序)