zoukankan      html  css  js  c++  java
  • P1996 约瑟夫问题

    P1996 约瑟夫问题

    广度优先搜索

    我竟然寄几做对了

    这个题用到了队列

    下面详细解释:

    我的代码:

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstdlib>
    #include<algorithm>
    #include<string>
    #include<cstring>
    using namespace std;
    int a[100000];
    int main()
    {
        int n,m;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
          a[i]=i;
        int h=0,t=n,num=0,t1=0;   //h 为队列的头,t为队列的尾,num记录送走了几个人,t1表示报数的数码;
        while(num<n)   //注意第一个走的人标号是0(如果是num<=n,就相当于多输出一个无用的0)
        {
            h++;   //指向人
            t1++;  //开始报数
            if(t1!=m)  //这个人不用走
            {
                t++;   //开一个格子
                a[t]=a[h];   //把他转移到队尾
            }
            else     //这个人要走
            {
                printf("%d ",a[h]);   //输出这个人
                t1=0;   //重新报数
                num++;  //记录走的人数
            }
        }
        
        return 0;
    }

    白树上的代码真的是晦涩难懂。。不敲了


     柏树原题

    题还是得多敲几遍。。

    泥看我过了一天就不会做了。。

  • 相关阅读:
    作业5,6 2019/10/23
    作业1、2、3、4 2019/10/23
    实现Map传参Mybatis
    maven工程配置pom.xml实现mybatis的访问数据库操作
    测试
    Postman篇之命令行测试
    unittest框架
    测试
    测试
    测试
  • 原文地址:https://www.cnblogs.com/xiaoyezi-wink/p/10692405.html
Copyright © 2011-2022 走看看