P17749 题解
出题人来啦。
我们设
点
相邻两式异或得:
所以:
即操作序列以
因此:
-
若
3\nmid n ,则所有a_i 相等,代入得a_i=1 ,答案为n 。 -
若
3\mid n ,每个周期长为3 ,且每周期内1 的个数为奇数。最少每周期放一个1 ,答案为\frac n3 。
代码如下:
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main()
{
int T,n;
cin >> T;
while (T--)
{
cin >> n;
if (n % 3 == 0) cout << n / 3 << '\n';
else cout << n << '\n';
}
return 0;
}