CF1208A 题解

题意

T ( 1 ≤ T ≤ 1 0 3 ) T(1 \leq T \leq 10^3) T(1T103) 组数据:

对于每组数据定义
f ( 0 ) = a ( 0 ≤ a ≤ 1 0 9 ) f(0) = a(0 \leq a \le 10^9) f(0)=a(0a109)
f ( 1 ) = b ( 0 ≤ b ≤ 1 0 9 ) f(1) = b(0 \leq b\le 10^9) f(1)=b(0b109)
f ( n ) = f ( n − 1 ) ⨀ f ( n − 2 ) , n ≥ 2 f(n)=f(n−1)⨀f(n−2),n \ge 2 f(n)=f(n1)f(n2),n2
F ( n ) , ( 0 ≤ n ≤ 1 0 9 ) F(n),(0 \leq n \le 10^9) F(n),(0n109)

思路

前置知识:
a ⨀ a = 0 ( 1 ) a⨀a=0(1) aa=0(1)

a ⨀ b ⨀ c = a ⨀ c ⨀ b ( 2 ) a⨀b⨀c =a⨀c⨀b(2) abc=acb(2)

考虑 f ( 3 ) = f ( 2 ) ⨀ f ( 1 ) = a ⨀ b ⨀ a f(3) = f(2) ⨀f(1) = a ⨀ b ⨀ a f(3)=f(2)f(1)=aba,根据 ( 2 ) (2) (2) f ( 3 ) = a ⨀ a ⨀ b f(3) = a ⨀ a ⨀ b f(3)=aab,再根据 ( 1 ) (1) (1) f ( 3 ) = 0 ⨀ b = b f(3) = 0 ⨀ b = b f(3)=0b=b,同理 f ( 3 ) = a f(3) = a f(3)=a

观察可以发现

f ( n ) = a , n m o d    3 = 0 f(n) = a,n \mod 3 = 0 f(n)=a,nmod3=0
f ( n ) = b , n m o d    3 = 1 f(n) = b,n \mod 3 = 1 f(n)=b,nmod3=1
f ( n ) = a ⨀ b , n m o d    3 = 2 f(n)=a⨀b,n \mod 3 = 2 f(n)=ab,nmod3=2
在这里插入图片描述

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,a,b,c;
signed main() {
	scanf("%lld",&t);
	while(t--) {
		scanf("%lld %lld %lld",&a,&b,&c);
		if(c % 3 == 0) printf("%lld\n",a);
		else if(c % 3 == 1) printf("%lld\n",b);
		else printf("%lld\n",a^b);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值