QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#823004#4283. Power of XORcwfxlhWA 1ms5640kbC++14838b2024-12-20 18:16:442024-12-20 18:16:45

Judging History

你现在查看的是最新测评结果

  • [2024-12-20 18:16:45]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5640kb
  • [2024-12-20 18:16:44]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define MOD 1000000007
using namespace std;
int n,k,a[503],xxj[503],ans,cnt,C[503][503];
int fstp(int X,int Y){int ret=1,bse=X%MOD;while(Y){if(Y%2)ret=ret*bse%MOD;bse=bse*bse%MOD;Y/=2;}return ret;}
signed main(){
	ios::sync_with_stdio(false);
	for(int i=0;i<=500;i++)C[i][0]=1;
	for(int i=1;i<=500;i++){
		for(int j=1;j<=i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%MOD;
	}
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		for(int j=43;j>=0;j--){
			if((a[i]>>j)&1){
				if(xxj[j]==0){
					xxj[j]=a[i];
					break;
				}
				else a[i]^=xxj[j];
			}
		}
	}
	for(int i=0;i<=44;i++)cnt+=(xxj[i]!=0);
	for(int i=1;i<=cnt;i++)ans=(ans+C[cnt][i]*fstp(i,k))%MOD;
	for(int i=1;i<=n;i++)if(a[i]==0)ans=ans*2ll%MOD;
	ans%=MOD;
	ans+=MOD;
	ans%=MOD;
	cout<<ans;
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 5584kb

input:

3 2
1 2 3

output:

12

result:

ok 1 number(s): "12"

Test #2:

score: 0
Accepted
time: 1ms
memory: 5640kb

input:

2 1000000000
1 2

output:

140625003

result:

ok 1 number(s): "140625003"

Test #3:

score: -100
Wrong Answer
time: 1ms
memory: 5584kb

input:

3 4
21 31 15

output:

132

result:

wrong answer 1st numbers differ - expected: '1076', found: '132'