比赛 寒假集训4 评测结果 WEETWEEEEE
题目名称 bitset(位集) 最终得分 0
用户昵称 ChenBp 运行时间 3.219 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2026-02-28 11:38:39
显示代码纯文本
#include <iostream>
#include <bitset>
#include <cstdio>
using namespace std;
int bit[25];
int n,m;
int s(int a,int b){
    int yu=bit[a],huo=bit[b];
    for(int i=a+1;i<=b;i++){
        yu&=bit[i];
        huo|=bit[i];
    }
    for(int i=0;i<m;i++){
        if(((huo>>i)&1)==0){
            huo|=1<<i;
        }else{
            huo&=~(1<<i);
        }
    }
    yu=yu^huo;
    int ans=0;
    for(int i=0;i<m;i++){
        ans+=(yu>>i)&1;
    }
    return ans;
}
int main() {
    freopen("bitset.in","r",stdin);
    freopen("bitset.out","w",stdout);
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=m-1;j>=0;j--){
            int x;
            scanf("%1d",&x);
            bit[i]|=x<<j;
        }
    }
    int k,x,y,z;
    cin>>k>>x>>y>>z;
    int a=1,b=n;
    int ans=0;
    for(int i=1;i<=k;i++){
        int now=s(min(a,b),max(a,b));
        ans+=now;
        a=(a*x+now*y+z)%n+1;
        b=(b*y+now*z+x)%n+1;
    }
    cout<<ans;
    return 0;
}