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;
}
posted @ 2024-04-03 17:11  BadBadBad__AK  阅读(56)  评论(0编辑  收藏  举报