CF1234题解
CF1234A
简单题,求一下平均数,因为他好像不能有小数,所以向上取整即可
CF1234B
这道题还分B1,B2,我一下直接全过了
维护一个长度为k的队列,直接照着它模拟
然后用map(因为有负数)来判断这个数是否在队列中即可
CF1234C
你会发现每种水管因为可以旋转,所以只分两种情况,1,2是一种情况,3,4,5,6是另一种
然后因为只有两行,所以只会有唯一的路径到达
然后按照情况分类讨论判断是否能到达即可
CF1234D
树状数组一眼题
分别对每一个小写字母开一个树状数组,单点修改,区间查询即可
代码没调出来,不知道哪里有错了,真服了。
有没有大佬能帮我看一看QWQ
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int q,op,p,l,r,len;
int a[N];
char s[N],c,tr[40][N];
int lowbit(int x){
return x&(-x);
}
void add(int x,int z,int num){
for(;x<=N;x+=lowbit(x)){
tr[z][x]+=num;
}
}
int query(int x,int z){
int res=0;
for(;x;x-=lowbit(x)){
res+=tr[z][x];
}
return res;
}
int main(){
scanf("%s",s+1);
len=strlen(s+1);
for(int i=1;i<=len;i++){
a[i]=s[i]-'a'+1;
add(i,a[i],1);
}
scanf("%d",&q);
for(int i=1;i<=q;i++){
scanf("%d",&op);
if(op==1){
scanf("%d %c",&p,&c);
add(p,a[p],-1);
a[p]=c-'a'+1;
add(p,a[p],1);
}
else{
int ans=0;
scanf("%d%d",&l,&r);
for(int i=1;i<=26;i++){
if((query(r,i)-query(l-1,i))!=0){
ans++;
}
}
printf("%d\n",ans);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探