专栏文章

题解:P14171 【MX-X23-T1】丢手绢

P14171题解参与者 5已保存评论 5

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
5 条
当前快照
1 份
快照标识符
@minogyg0
此快照首次捕获于
2025/12/02 05:45
3 个月前
此快照最后确认于
2025/12/02 05:45
3 个月前
查看原文

题意简述

找到每个人丢手绢的次数,并找到最大值

思路分析

输入每个人丢手绢的位置,断环为链,每一次枚举到当前丢手绢的位置是否超过 11 或者 nn ,整体复杂度是线性的

AC CODE

CPP
#include<iostream>
using namespace std;
int a[100005],cnt[100005];
int main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		int curr=i+a[i];
		if(curr<1) curr+=n;
		if(curr>n) curr-=n;
		cnt[curr]++;
	}
	int maxn=-1;
	for(int i=1;i<=n;i++)
	{
		maxn=max(maxn,cnt[i]);
	}
	for(int i=1;i<=n;i++)
	{
		if(maxn==cnt[i]) cout<<i<<" ";
	}
	return 0;
}

评论

5 条评论,欢迎与作者交流。

正在加载评论...