比赛 期末考试0 评测结果 AAAEEEEEEE
题目名称 我能在摸鱼被发现的情况下躲避教练的视奸吗 最终得分 30
用户昵称 小福鑫 运行时间 1.216 s
代码语言 C++ 内存使用 11.26 MiB
提交时间 2026-02-07 10:48:42
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
const int mod=4294967296;
using namespace std;
int n,m,l,r,a[1001],b[1001],c[1001],aa[1001][1001],ba[1001][1001],ca[1001][1001],ans,an[1001][1001];
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
	while(isdigit(ch))x=(x<<3)+(x<<1)+ch-48,ch=getchar();
	return x*f;
}
signed main(){
    freopen("shijian.in","r",stdin);
    freopen("shijian.out","w",stdout);
    n=read(),m=read();
    for(int i=1;i<=n;i++){
        a[i]=read();
    }
    for(int l=1;l<=n;l++){
        for(int r=l;r<=n;r++){
            if(l==r){
                aa[l][r]=a[l];
            }
            else{
                aa[l][r]=aa[l][r-1] & a[r];
            }
        }
    }
    for(int i=1;i<=n;i++){
        b[i]=read();
    }
    for(int l=1;l<=n;l++){
        for(int r=l;r<=n;r++){
            if(l==r){
                ba[l][r]=b[l];
            }
            else{
                ba[l][r]=ba[l][r-1] | b[r];
            }
        }
    }
    for(int i=1;i<=n;i++){
        c[i]=read();
    }
    for(int l=1;l<=n;l++){
        for(int r=l;r<=n;r++){
            if(l==r){
                ca[l][r]=c[l];
            }
            else{
                ca[l][r]=__gcd(ca[l][r-1],c[r]);
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            an[i][j]=aa[i][j]*ba[i][j]*ca[i][j]%mod;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            an[i][j]+=an[i][j-1];
            an[i][j]%=mod;
        }
    }
    while(m--){
        ans=0;
        l=read(),r=read();
        for(int i=l;i<=r;i++){
            ans+=(an[i][r]-an[i][i-1]);
            ans%=mod;
        }
        cout<<ans<<endl;  
    }
}