1 条题解

  • 0
    @ 2025-8-24 21:32:45

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar KesdiaelKen
    **

    搬运于2025-08-24 21:32:45,当前版本为作者最后更新于2017-10-03 11:52:20,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    并没有人打出如此简单的代码吧……

    其实,此题就是一个模拟题。按照题意去做,用visit记录下已经出队了的人,然后模拟,一个个的加就行了。

    还要注意,一开始,加的数要赋值为0。还有visit数组要开始全部赋值为false(早就知道了?我第一遍就忘了……)

    代码如下:

    #include<cstdio>
    using namespace std;
    int main()
    {
        int n,m,s=0;scanf("%d%d",&n,&m);//入读
        bool visit[200]={0};//visit赋初始值
        for(int k=0;k<n;k++){//总共要出队n次
            for(int i=0;i<m;i++){if(++s>n)s=1;if(visit[s])i--;}//类似取模,而因为序列是从1开始的,所以不取模,加判断;若visit过,则i--,使其继续循环
            printf("%d ",s);visit[s]=true;//输出,记录已出队
        }
        return 0;
    }
    
    • 1

    信息

    ID
    961
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者