社区讨论
卡常97pts求助(玄关)
P3987我永远喜欢珂朵莉~参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @m0gpurcw
- 此快照首次捕获于
- 2024/08/30 20:54 去年
- 此快照最后确认于
- 2025/11/04 21:59 4 个月前
CPP
#include<bits/stdc++.h>
#define re register
using namespace std;
int n,m,a[500010],cmd,t1,t2,t3;
long long ans;
inline int read(){
int f=1,x=0;
char c=getchar();
while(c>'9'||c<'0'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
inline void write(long long t){
if(t>9) write(t/10);
putchar(t%10+'0');
}
signed main(){
re int i,j;
n=read(),m=read();
for(i=1;i<=n;i++) a[i]=read();
for(i=1;i<=m;i++){
cmd=read();
if(cmd==1){
t1=read(),t2=read(),t3=read();
if(t3==1) continue;
if(t3==2){
for(j=t1;j<=t2-5;j+=6){
(a[j]&1)?1:(a[j]>>=1);
(a[j+1]&1)?1:(a[j+1]>>=1);
(a[j+2]&1)?1:(a[j+2]>>=1);
(a[j+3]&1)?1:(a[j+3]>>=1);
(a[j+4]&1)?1:(a[j+4]>>=1);
(a[j+5]&1)?1:(a[j+5]>>=1);
}
while(t2-j+1){
(a[j]&1)?1:(a[j]>>=1);
j++;
}
}else if(t3==4){
for(j=t1;j<=t2-5;j+=6){
(a[j]&3)?1:(a[j]>>=2);
(a[j+1]&3)?1:(a[j+1]>>=2);
(a[j+2]&3)?1:(a[j+2]>>=2);
(a[j+3]&3)?1:(a[j+3]>>=2);
(a[j+4]&3)?1:(a[j+4]>>=2);
(a[j+5]&3)?1:(a[j+5]>>=2);
}
while(t2-j+1){
(a[j]&3)?1:(a[j]>>=2);
j++;
}
}else if(t3==8){
for(j=t1;j<=t2-5;j+=6){
(a[j]&7)?1:(a[j]>>=3);
(a[j+1]&7)?1:(a[j+1]>>=3);
(a[j+2]&7)?1:(a[j+2]>>=3);
(a[j+3]&7)?1:(a[j+3]>>=3);
(a[j+4]&7)?1:(a[j+4]>>=3);
(a[j+5]&7)?1:(a[j+5]>>=3);
}
while(t2-j+1){
(a[j]&7)?1:(a[j]>>=3);
j++;
}
}else{
for(j=t1;j<=t2-5;j+=6){
(a[j]%t3)?1:(a[j]/=t3);
(a[j+1]%t3)?1:(a[j+1]/=t3);
(a[j+2]%t3)?1:(a[j+2]/=t3);
(a[j+3]%t3)?1:(a[j+3]/=t3);
(a[j+4]%t3)?1:(a[j+4]/=t3);
(a[j+5]%t3)?1:(a[j+5]/=t3);
}
while(t2-j+1){
(a[j]%t3)?1:(a[j]/=t3);
j++;
}
}
}else{
t1=read(),t2=read();
ans=0;
for(j=t1;j<=t2-5;j+=6) ans+=(a[j]+a[j+1]+a[j+2]+a[j+3]+a[j+4]+a[j+5]);
while(t2-j+1){
ans+=a[j];
j++;
}
write(ans);
putchar('\n');
}
}
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...