ABC389C TLE 7 个点 求优化 玄关
  • 板块学术版
  • 楼主Karl_Wan
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/1/19 09:14
  • 上次更新2025/1/19 11:31:02
查看原帖
ABC389C TLE 7 个点 求优化 玄关
1073879
Karl_Wan楼主2025/1/19 09:14

题面

  • 经过检查发现我的第三个操作是 O(n)O(n) 复杂度,显然不行
  • 那怎么把所有操作优化成 O(1)O(1) 呢?
#include <iostream>
using namespace std;
const long long maxn=3e5+9;long long Q;
long long q[maxn],head,tail;
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>Q;
	head=0,tail=0;
	for(;Q--;)
	{
		long long type,value;
		cin>>type;
		//push
		if(type==1)
		{
			cin>>value;
			q[tail]=value;
			tail++;
			tail%=maxn;
		}
		//pop
		if(type==2)
		{
			head++;
			head%=maxn;
		}
		//查询 
		if(type==3)
		{
			cin>>value;
			long long j=0;
			for(long long i=1;i<value;i++)
			{
				j+=q[(head+i-1)%maxn];
			}
			cout<<j<<'\n';
		} 
	}
	
	return 0;
}
2025/1/19 09:14
加载中...