当前位置: 首页 > 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.jsqmd.com/news/181882/

相关文章:

  • PyTorch显存占用太高?3个鲜为人知的Python技巧让你效率翻倍
  • DeepMimic: Example-Guided Deep Reinforcement Learning of PhysicsBased Character Skills
  • 文学作品角色演绎:小说中每个人物都有独特声线
  • 矿山安全监控系统:危险区域进入时触发语音警告
  • 军事指挥系统语音输出:保密前提下的高效信息传递
  • 编辑文章 - 题解:CF665D Simple Subset
  • 雾霾指数语音提醒:环保部门发布空气质量通知
  • 提升PostgreSQL编码效率的利器:pg-aiguide✨
  • 【从入门到精通】:NiceGUI输入校验的7种高级实现方式
  • PyWebIO上传下载功能隐藏用法大揭秘:99%新手不知道的2个核心参数
  • 让Claude更聪明,提升效率的秘笈——Agent Skills 开源项目介绍
  • 建筑工地安全广播:每日开工前自动播放注意事项
  • 家乡方言保存工程:用VoxCPM-1.5-TTS留住文化遗产
  • 题解:CF628C Bear and String Distance
  • 没闲着系列 2026 - 1.2 - ukyo-
  • 从零实现3D旋转与缩放,Python视角控制实战案例详解
  • 深度伪造语音防范:如何识别VoxCPM-1.5-TTS生成内容?
  • 孔子学院教学辅助:留学生练习汉语发音的好帮手
  • Python大模型显存管理实战(从OOM到流畅训练的5个关键步骤)
  • 女性开发者沙龙:巾帼力量推动语音技术进步
  • 潜水教学语音提示:水下环境特殊场景的应用探索
  • DC宇宙蝙蝠洞通讯:戈登局长接到AI生成警报
  • 拍卖会竞价播报:主持人助手实时复述出价金额
  • Python 3D图形开发必知(视角控制技术全公开)
  • 外卖骑手接单提示音:VoxCPM-1.5-TTS定制专属提醒语调
  • 我的2025年度总结:代码行行皆是思维留痕
  • 体育赛事比分更新:观众无需看屏也能掌握赛况
  • 异步HTTP请求不再难,手把手教你用HTTPX处理上千并发
  • 相声小品台词生成:传统曲艺与现代技术融合创新
  • 树状结构序列化性能差?,一文解决Python中JSON与Pickle的深层瓶颈