题目描述
blablabla
蓝桥村的真相
- 假设真话的村民标记为1,假话记为0
- 1后面只能跟10或01, 0后面只能跟00或11
-
假设第一个村民为1,则会有
第一种情况:1,110,1101,11011,110110,1101101,11011011.... 可以看到是以“110”为循环才会成立,因为村民是成环形而坐,因此n=4,5,7,8…不会有这个情况存在,当n%3==0,说谎数为n//3
第二种情况:1,101,1011,10110,101101,1011011,10110110,101101101…同理得到同样的结论 -
假设第一个村民为0,则会有
第一种情况:011,0110,01101,011011,0110110,01101101,011011011…同理得到同样的结论
第二种情况:000,0000,00000....无论n为多少说谎的都是n
样例
blablabla
算法1
(暴力枚举) O(n2)
blablabla
时间复杂度
参考文献
python 代码
from sys import stdin
input = lambda : stdin.readline()
t = int(input().strip())
for i in range(t):
n = int(input().strip())
if n%3 == 0:
print(2*n)
else:
print(n)