这是什么奇怪做法???
  • 板块P1901 发射站
  • 楼主littlebug
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/10/1 22:38
  • 上次更新2023/11/2 16:40:33
查看原帖
这是什么奇怪做法???
541634
littlebug楼主2023/10/1 22:38

开始想用deque做,结果就得了 30pts ,后来提交了好几次之后竟然就这么 AC 了,

记录列表

#include<iostream>
#include<cstdio>
#include<deque>
using namespace std;
const int MAXN=1e6+5;
struct tower
{
	int h,v; //h:高度 v:能量值 
	int ans=0; //ans:接受的能量 
};
int n;
tower t[MAXN];
deque <tower> que;
int ans=0;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(nullptr);
	cout.tie(nullptr);
	cin>>n;
	for(int i=1;i<=n;++i)
		cin>>t[i].h>>t[i].v;
	que.push_back(t[1]);
	for(int i=2;i<=n;++i)
	{
		while(que.size() && t[i].h>que.back().h)
		{
			t[i].ans+=que.back().v;
			que.pop_back();
		}
		if(que.size())
			que.back().ans+=t[i].v;
		if(que.size() && que.back().ans>ans)
		    ans=que.back().ans;
		que.push_back(t[i]);
		if(que.back().ans>ans)
		    ans=que.back().ans;
	}
	cout<<ans;
	return 0;
}
2023/10/1 22:38
加载中...