跳过正文
题解:P10295 [CCC 2024 S1] Hat Circle

题解:P10295 [CCC 2024 S1] Hat Circle

xyx404
作者
xyx404
Have a nice day.

封面

思路:
#

通过画图可知编号为 $i$ 的人的正对面的人的编号为 $i+n/2$,前提是 $i$ 小于等于 $n$ 的一半。

{% image https://cdn.luogu.com.cn/upload/image_hosting/7a6jdljw.png %}

得知了编号为 $i$ 的人和他的正对面的人的编号就可以直接判断他们帽子的号码是不是相同的就可以了。

已提交测试。

完整代码:
#

#include<bits/stdc++.h>
#define LL long long
#define CPPname using namespace std
CPPname;
LL n;
const int MAX=1000010;
LL a[MAX];
int main(){
    cin>>n;
    LL ans=0;
    for(int i=1;i<=n;i++)cin>>a[i];
    const int c=n/2;
    for(int i=1;i<=n/2;i++){
        if(a[i]==a[i+c])ans+=2;
        //cout<<i<<" "<<i+n/2<<" ";
    }

    cout<<ans;
    return 0;
}