关注
第一题 kmp(看别人貌似暴力也能过) char T[maxn];
char P[maxn];
int f[maxn],cnt[maxn];
void getf(char *P,int* f){
int n=strlen(P);
f[0]=f[1]=0;
for(int i=1;i<n;i++){
int j=f[i];
while(j && P[i]!=P[j])
j=f[j];
f[i+1]=P[i]==P[j]?j+1:0;
}
}
int main()
{
int i,j,n,m;
scanf("%s",T);
scanf("%s",P);
getf(P,f);
n=strlen(T);
m=strlen(P);
j=0;
for(i=0;i<n;i++){
while(j && P[j]!=T[i]) j=f[j];
if(P[j]==T[i])
j++;
if(j==m){
cnt[i]++;//在主串的第i个位置匹配成功
j=f[j];
}
}
printf("%d",cnt[0]);
for(i=1;i<n;i++){
cnt[i]+=cnt[i-1];
printf(" %d",cnt[i]);
}
return 0;
} 第二题 线段树 int sum[maxn*4],a[maxn],n,N;
void pushupOR(int k){
sum[k]=(sum[k*2]|sum[k*2+1]);
}
void pushupXOR(int k){
sum[k]=(sum[k*2]^sum[k*2+1]);
}
void build(int k,int l,int r,int d){
if(l==r){
sum[k]=a[l];return ;
}
int m=(l+r)/2;
build(k*2,l,m,d+1);
build(k*2+1,m+1,r,d+1);
if((n-d)&1)
pushupXOR(k);
else
pushupOR(k);
}
void update(int p,int v,int k,int l,int r,int d){
if(l==r){
sum[k]=v;
return ;
}
int m=(l+r)/2;
if(p<=m)
update(p,v,k*2,l,m,d+1);
else
update(p,v,k*2+1,m+1,r,d+1);
if((n-d)&1)
pushupXOR(k);
else
pushupOR(k);
}
int main()
{
int i,j,m;
scanf("%d%d",&n,&m);
N=(1<<n);
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
build(1,1,N,1);
while(m--){
int u,v;
scanf("%d%d",&u,&v);
update(u,v,1,1,N,1);
printf("%d\n",sum[1]);
}
return 0;
}
查看原帖
点赞 评论
相关推荐
02-08 11:05
广东科技学院 全栈开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 读研or工作,哪个性价比更高? #
24064次浏览 324人参与
# 如果重来一次你还会读研吗 #
154372次浏览 1691人参与
# 科大讯飞求职进展汇总 #
258846次浏览 2594人参与
# 秋招感动瞬间 #
10729次浏览 101人参与
# 阿里巴巴创始人马云回国 #
14124次浏览 87人参与
# 职场新人生存指南 #
195129次浏览 5375人参与
# 你最满意的offer薪资是哪家公司? #
11819次浏览 109人参与
# 文科生还参加今年的春招吗 #
3312次浏览 29人参与
# 长光卫星求职进展汇总 #
27568次浏览 184人参与
# 选择和努力,哪个更重要? #
41969次浏览 471人参与
# 招聘要求与实际实习内容不符怎么办 #
40770次浏览 465人参与
# 打工人的工作餐日常 #
24689次浏览 221人参与
# 机械制造岗投递时间线 #
19307次浏览 324人参与
# 影石Insta360求职进展汇总 #
107605次浏览 968人参与
# 机械人选offer,最看重什么? #
68555次浏览 433人参与
# 机械人怎么评价今年的华为 #
180292次浏览 1484人参与
# 如果再来一次,你还会学硬件吗 #
102755次浏览 1233人参与
# 正在实习的你,有转正机会吗? #
336147次浏览 2690人参与
# 如果公司降薪,你会跳槽吗? #
44460次浏览 349人参与
# 滴!实习打卡 #
554282次浏览 6007人参与