AtCoder Beginner Contest 121-D - XOR World

给你一个区间输出l^(l+1)......^r的值

 

找了半天规律,发现方向错了,巨特么复杂,结束后发现很简单

对于F(n) = 0^1^2....……^n

其满足

long long xor1_a(long long a){
    if(a%4==1)
        return 1ll;
	if(a%4==2)
        return a+1;
    if(a%4==3 || a==0)
        return 0ll;
    return a;
}
#include
#include
using namespace std;
long long xor1_a(long long a){
    if(a%4==1)
        return 1ll;
	if(a%4==2)
        return a+1;
    if(a%4==3 || a==0)
        return 0ll;
    return a;
}
int main(){
    long long n,m;
    cin>>n>>m;
    if(n==0) cout<<(xor1_a(m))<

 

你可能感兴趣的:(规律题(找啊,找啊,找不着啊))