P10295 [CCC 2024 S1] Hat Circle 题解
观察一下样例的解释。
第 \(1\) 项与第 \(3\) 项对立。
第 \(2\) 项与第 \(4\) 项对立。
观察规律可得。
第 \(i\) 项与第 \(i+\dfrac{n}{2}\) 项对立 \((i<\dfrac{n}{2})\)。
敲黑板,易错点。
第 \(i\) 个人与第 \(i+\dfrac{n}{2}\) 头上编号一样时,不只是第 \(i\) 个人看到了,第 \(i+\dfrac{n}{2}\) 个人也看到了,所以 \(ans\) 要加上 \(2\)。
#include <bits/stdc++.h>
using namespace std;
int a[1000005];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
int ans=0;
for(int i=1;i*2<=n;i++)//乘法比除法更快
{
if(a[i]==a[i+n/2])
{
ans+=2;
}
}
cout<<ans;
}