题解 CF1208A 【XORinacci】
引领天下
2019-08-26 21:58:15
这个题其实是很简单的……
看到题面的第一眼:递推求数列?$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;//如上文的解法。
}
}
}
```