• Wannafly挑战赛18C 异或和


    傻逼题,和期望没毛关系。。。

    分开xy坐标,n方直接统计每个坐标的曼蛤顿距离即可。。

    #include<bits/stdc++.h>
    #define il inline
    #define vd void
    typedef long long ll;
    #define mod 1000000007
    il int gi(){
    	int x=0,f=1;
    	char ch=getchar();
    	while(!isdigit(ch)){
    		if(ch=='-')f=-1;
    		ch=getchar();
    	}
    	while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
    	return x*f;
    }
    char s[2010][2010];
    int n,m,ans,sx[2010],sy[2010];
    ll SX[2010],SY[2010],inv,xx,yy;
    int main(){
    #ifndef ONLINE_JUDGE
    	freopen("129c.in","r",stdin);
    	freopen("129c.out","w",stdout);
    #endif
    	n=gi(),m=gi();
    	for(int i=1;i<=n;++i)scanf("%s",s[i]+1);
    	for(int i=1;i<=n;++i)
    		for(int j=1;j<=m;++j)
    			if(s[i][j]=='1')
    				++sx[i],++sy[j],++xx;
    	for(int i=1;i<=n;++i){
    		for(int j=1;j<=n;++j)
    			SX[i]+=sx[j]*abs(i-j);
    		SX[i]%=mod;
    	}
    	for(int i=1;i<=m;++i){
    		for(int j=1;j<=m;++j)
    			SY[i]+=sy[j]*abs(i-j);
    		SY[i]%=mod;
    	}
    	yy=mod-2;inv=1;
    	while(yy){
    		if(yy&1)inv=inv*xx%mod;
    		xx=xx*xx%mod;yy>>=1;
    	}
    	for(int i=1;i<=n;++i)
    		for(int j=1;j<=m;++j)
    			ans^=(SX[i]+SY[j])*inv%mod;
    	printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    jquery animate()方法 语法
    jquery unload方法 语法
    jquery undelegate()方法 语法
    jquery unbind()方法 语法
    jquery trigger() 方法 语法
    jquery toggle()方法 语法
    jquery change() 函数 语法
    jquery blur()函数 语法
    jquery bind()方法 语法
    jquery checked选择器 语法
  • 原文地址:https://www.cnblogs.com/xzz_233/p/9737965.html
Copyright © 2020-2023  润新知