专栏文章
题解:P14171 【MX-X23-T1】丢手绢
P14171题解参与者 5已保存评论 4
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @minogsh6
- 此快照首次捕获于
- 2025/12/02 05:45 3 个月前
- 此快照最后确认于
- 2025/12/02 05:45 3 个月前
题意:
有 个小朋友玩丢手绢的游戏,顺序输出被放手绢最多的小朋友的编号。
思路:
比较简单的一道模拟题,我们依照题意模拟,用一个 数组记录每个人被丢手绢的次数,最后扫一遍即可。
代码:
CPP#include<bits/stdc++.h>
using namespace std;
int cnt[100005];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
if(x==0)
cnt[i]++;
else if(x>0)
{
int y=(i+x)%n;
if(y==0)//注意这里如果是第n个人,会被模成0,要特判
y=n;
cnt[y]++;
}
else
{
x%=n;
int y=i+x;
if(y<1)
y+=n;//这部分同上
cnt[y]++;
}
}
int maxn=0;
for(int i=1;i<=n;i++)
maxn=max(maxn,cnt[i]);//找最大值
for(int i=1;i<=n;i++)
if(cnt[i]==maxn)
cout<<i<<" ";//相同就输出
return 0;
}
相关推荐
评论
共 4 条评论,欢迎与作者交流。
正在加载评论...