zoukankan      html  css  js  c++  java
  • hdu1014Uniform Generator

    1.使用暴力穷举法:注意条件判断

    代码如下:

    #include<stdio.h>
    #include<string.h>
    bool m[100001];
    int main()
    {
     int mod,step,seed,num;
     while(scanf("%d %d",&step,&mod)!=EOF)
     {
      memset(m,0,sizeof(m));seed=0;num = 0;
      while(!(m[seed%mod])){
       m[seed%mod]=1;seed=(seed+step)%mod;num++;
      }
      if(num==mod)
       printf("%10d%10d    Good Choice\n\n",step,mod);
      else
       printf("%10d%10d    Bad Choice\n\n",step,mod);

     }
    }

    15ms 104k

    2.在网上看得资料:

    简单证明:(不知正确与否,网上提交成功了)
    令 f(x) = seed(x) + step ;
    那么seed 的序列 就是 a=f(x) 的模MOD 加法群。
    因为题中要求这个加法群的大小 | <a> | = MOD。
    所以 a == 1 (mod MOD ).
    即( seed(x) + STEP ) == 1 (mod MOD).
    又因为seed(x) 必定含有0,
    所以 STEP == 1 (mod MOD ).
    即 STEP 和 MOD 互质

    所以可以编写代码如下:

    #include<stdio.h>
    int gcd(int n,int m)
    {
     if(m==0)
      return n;
     return gcd(m,n%m);
    }
    int main()
    {
     int step,mod;

     while(scanf("%d %d",&step,&mod)!=EOF)
     {
      if(gcd(step,mod)==1)
       printf("%10d%10d    Good Choice\n\n",step,mod);
      else
       printf("%10d%10d    Bad Choice\n\n",step,mod);

     }
    }

    0ms 4k

  • 相关阅读:
    公平锁,非公平锁,乐观锁,悲观锁
    需求分析
    需求的获取渠道
    php将中文字符串分割为数组
    面试题
    ecshop中错误
    应用上线前必须进行的10个QA测试
    资料1
    tp数据库配置
    Web开发思路
  • 原文地址:https://www.cnblogs.com/pandy/p/1319045.html
Copyright © 2011-2022 走看看