题解 CF1208A 【XORinacci】

引领天下

2019-08-26 21:58:15

Solution

这个题其实是很简单的…… 看到题面的第一眼:递推求数列?$n\le 10^9$? ~~恩估计是矩阵快速幂~~ 但A应该不至于这样吧? 仔细一看,发现自己被出题人骗了 $$f[0]=a$$ $$f[1]=b$$ $$f[2]=axorb$$ $$f[3]=axorbxorb=a$$ $$f[4]=axorb$$ 好的那么我们就知道了,$f[3]=f[0],f[4]=f[1],f[5]=f[2]...$读入的$n$是假的,直接%=$3$就好。 代码: ```cpp #include<bits/stdc++.h> using namespace std; int t,a,b,n; int main(){ scanf("%d",&t); while(t--){ scanf("%d%d%d",&a,&b,&n);n%=3;//读入,同时取模 switch(n){ case 0:printf("%d\n",a);break; case 1:printf("%d\n",b);break; default:printf("%d\n",a^b);break;//如上文的解法。 } } } ```