题目
题意:给出x数列的定义:
- $T_0 = a$
- $T_1 = b$
- $T_n = T_{n-2} igoplus T_{n-1} $
求第 $n$ 项( $0 leqslant a,b,c leqslant 10^{18} $)
分析
$n$ 这么大,肯定是常数时间复杂度。
打表找规律,能发现循环节为3。
或者直接推导,$a igoplus b = c, b igoplus c = a, c igoplus a = b$
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll a, b, n; int main() { scanf("%lld%lld%lld", &a, &b, &n); ll c = a ^ b; ll ans; if(n % 3 == 0) ans = a; else if(n % 3 == 1) ans = b; else ans = c; printf("%lld ", ans); return 0; }