当前位置: 首页 > news >正文

题解:AT_abc389_c [ABC389C] Snake Queue

这道题我用的是前缀和来做的。

如果我们每次在需要输出时进行将蛇的总长度(除了最后一条)加一遍,这个时候,我们会发现代码会 TLE。

我们用前缀和。我们首先使用 \(p\) 数组将这几条蛇的总长度的前缀和记录下来,我们再用双指针记录队列的头和尾。这时
\(p_{f-1}\) 就是所有出了这个队列的蛇的总长度,\(p_{f+k-2}\) 即为题目中叫你求的这前 \(k\) 条蛇的总长度。我们再两个一减,就是答案啦。

AC code:

#include <bits/stdc++.h>
using namespace std;
#define N 300010
#define sz(s) s.size()
#define db double
#define mod 1000000007
#define P 998244353
#define ll long long
#define fi first
#define se second
#define pb push_back
#define mk make_pair
#define per(i,l,r) for(ll i=l;i>=r;i--)
#define rep(i,l,r) for(ll i=l;i<=r;i++)
#define in insert
#define y1 y142857
//pair<ll,ll> PII;
//unordered_map<int,int> f;
vector<int>edges[N];
//set<int>c;
int huiwen(int x){int b[100],l=0,t=x;while(t!=0){b[++l]=t%10;t/=10;}for(int i=1,j=l;i<=j;i++,j--)if(b[i]!=b[j])return 0;return 1;}
int prime(int x){for(int i=2;i*i<=x;i++)if(x%i==0)return 0;return 1;} 
inline int gcd(int a,int b){if(a<b)gcd(b,a);if(!b)return a; return gcd(b,a%b);} 
inline int lcm(int a,int b){return a*b/gcd(a,b);}
inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
inline void pri(int x){if(x==1)putchar(' ');if(x==2)putchar('\n');
}
inline void put(int x){if(x==1)puts("Yes");if(x==2)puts("No");if(x==3)puts("YES");if(x==4)puts("NO");if(x==5)puts("yes");if(x==6)puts("no");
}
inline void write(ll x,ll w,ll e){if(x<0)putchar('-'),x=-x;if(x>9)write(x/10,w,e);putchar(x%10+'0');if(x==e){if(w==1)putchar(' ');if(w==2)putchar('\n');}return;
}
int q=read(),f=1,r,a[N],l=0;ll p[N];
void sovel(){rep(i,1,q){int type=read();if(type==1){cin>>a[++l];r++;if(l==1)continue;else p[l-1]=p[l-2]+a[l-1];}else if(type==2)f++;else{int k;cin>>k;cout<<p[f+k-2]-p[f-1]<<"\n";}}
}
int main(){int _=1;while(_--)sovel();
}
http://www.gsyq.cn/news/198207.html

相关文章:

  • PyTorch显存占用太高?3个鲜为人知的Python技巧让你效率翻倍
  • 编辑文章 - 题解:CF665D Simple Subset
  • 电力巡检机器人语音报告:野外作业人员实时接收信息
  • 提升PostgreSQL编码效率的利器:pg-aiguide✨
  • 让Claude更聪明,提升效率的秘笈——Agent Skills 开源项目介绍
  • 题解:CF628C Bear and String Distance
  • 没闲着系列 2026 - 1.2 - ukyo-
  • 深度伪造语音防范:如何识别VoxCPM-1.5-TTS生成内容?
  • 罗马斗兽场历史回顾:角斗士入场时的呐喊重现
  • 孔子学院教学辅助:留学生练习汉语发音的好帮手
  • 【高性能Python网络编程】:掌握HTTPX并发控制的3个核心机制
  • 揭秘Transformer模型在Python中的显存瓶颈:如何从16GB减至8GB
  • AI歌手专辑发行:首张完全由机器创作并演唱的唱片
  • 工厂产线状态通报:机器运行异常时自动语音预警
  • 【高效开发必备】:FastAPI中绕过不必要预检请求的3种实战方案
  • Python大模型显存管理实战(从OOM到流畅训练的5个关键步骤)
  • 拍卖会竞价播报:主持人助手实时复述出价金额
  • 数据科学与大数据技术毕业设计最全方向答疑
  • 揭秘Python多模态数据存储瓶颈:3种高性能方案彻底提升IO效率
  • NBA球星采访重播:粉丝选择自己喜欢的解说风格
  • 【AI工程师私藏手册】:Python大模型显存占用分析与极致压缩技术揭秘
  • VoxCPM-1.5-TTS-WEB-UI支持多种语言输入的语音合成测试报告
  • 卢卡斯定理简记
  • CSDN官网博主都在用的语音合成工具:VoxCPM-1.5-TTS推荐
  • 前端频繁触发预检?FastAPI CORS配置全攻略,一文搞定
  • 足球裁判判罚解释:赛后回放附带语音说明争议点
  • 双指针专题(六):贪婪的采摘者——「水果成篮」
  • 自助售票机交互升级:VoxCPM-1.5-TTS改善用户操作体验
  • 智能硬件集成:VoxCPM-1.5-TTS在IoT设备上的轻量化部署
  • 学生毕业设计展示:答辩环节加入AI语音辅助讲解