QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#748054#9597. Grade 2xdz_WA 0ms3940kbC++141002b2024-11-14 19:10:412024-11-14 19:10:44

Judging History

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

  • [2024-11-14 19:10:44]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3940kb
  • [2024-11-14 19:10:41]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second
#define endl '\n'
typedef pair<int,int> PII;
int gcd(int a,int b){
	if(!b) return a;
	return gcd(b,a%b);
}
void solve(){
	int n,x;
	cin >>x>>n; 
	int zz = 1;//区间长度
	while (zz < x)
		zz <<= 1;//2的log2x(向上取整)次方
	vector<int> s(zz + 1,0);
	for(int i = 1;i <= zz;i ++){
		int s1 = (gcd((i*x)^x,x) == 1);
		s[i] = s[i-1] + s1;
	}
	
	for(int i=0;i<n;i++){
		int l,r;
		scanf("%lld%lld",&l,&r);
		int ans=0;
		//先求 L 左边有几个 1;
		int lans=0;
		lans=(l-1)/zz*s[zz];
		int ls=(l-1)%zz;
		lans += s[ls];
		
		//在求 R 左边有几个 1;
		int rans=0;
		rans=(r)/zz*s[zz];
		int rs=(r)%zz;
		rans += s[rs];	
		
		ans = rans - lans;
		
		cout<<ans<<'\n';
	}
	
}

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int T;
    T = 1;
//    cin>>T;
    while(T --){
        solve();
    }
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3940kb

input:

15 2
1 4
11 4514

output:

3906722888155258172
3906722888155258172

result:

wrong answer 1st lines differ - expected: '2', found: '3906722888155258172'