1014 Uniform Generator ACM
http://acm.hdu.edu.cn/showproblem.php?pid=1014
题目的英文实在是太多了 ,搞不懂。
最后才知道是用公式seed(x+1) = [seed(x) + STEP] % MOD 来计算随机数 ,问是否满足随机数。
初级版本:
思路:把所有的用该公式计算出来的数(存在数组中)都遍历出来,然后排序。由于数字是在0 到mod-1 之间,所以数组的下标必然等于数组的值,有一个不等于,就是bad chioce
#include <stdio.h>
#include <stdlib.h>
int cmp ( const void *p1 , const void *p2 )
{
return *( int * )p1 - *( int * )p2 ;
}
int main ( )
{
int step , mod ;
while ( (scanf("%d %d",&step , &mod ) ) != EOF )
{
int i , seed[ ] = { } ;
seed[ ] = ;
for ( i = ; i < mod ; i ++ )
seed[ i ] = ( seed[ i- ] + step ) % mod ; qsort( seed , mod , sizeof ( int ) , cmp ) ;
for ( i = ; i < mod ; i ++ )
if ( seed[ i ] != i )
break ;
if ( i != mod )
printf("%10d%10d Bad Choice\n\n", step , mod );
if ( i == mod )
printf("%10d%10d Good Choice\n\n" , step , mod );
}
return ;
}
升级版本:
思路:只要有一个遍历出来的数和已经算出来的随机数相等 ,根据该公式,那么后来遍历出来的数,必然循环相等。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int visit[];
int main()
{
int sept,mod;
while(scanf("%d%d",&sept,&mod) != EOF)
{
int flag = ,n = ;
memset(visit,,sizeof(visit));
for(int i = ; i <= mod; i++)
{
n = (n + sept) % mod;
if(visit[n])
{
flag = ;
break;
}
else
{
visit[n] = ;
}
}
if(flag)
printf("%10d%10d Bad Choice\n\n",sept,mod);
else
printf("%10d%10d Good Choice\n\n",sept,mod);
}
return ; }
1014 Uniform Generator ACM的更多相关文章
- HDU 1014 Uniform Generator(模拟和公式)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1014 Uniform Generator Time Limit: 2000/1000 MS (Java ...
- HDU 1014 Uniform Generator【GCD,水】
Uniform Generator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1014:Uniform Generator
Uniform Generator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1014 Uniform Generator(题解)
Uniform Generator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- hdu 1014.Uniform Generator 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目意思:给出 STEP 和 MOD,然后根据这个公式:seed(x+1) = [seed(x) ...
- HDU 1014 Uniform Generator 欧几里得
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 解题思路: 1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这 ...
- HDOJ 1014 Uniform Generator(公约数问题)
Problem Description Computer simulations often require random numbers. One way to generate pseudo-ra ...
- 1014 Uniform Generator
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- HDU 1014 Uniform Generator 题解
找到规律之后本题就是水题了.只是找规律也不太easy的.证明这个规律成立更加不easy. 本题就是求step和mod假设GCD(最大公约数位1)那么就是Good Choice,否则为Bad Choic ...
随机推荐
- 分布式事务XA
1.什么是分布式事务 分布式事务就是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成 ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '***' (2)
有时候,当我们使用“mysql”.“mysqladmin”.“mysqldump”等命令管理数据库时,服务器抛出类似如下错误: ERROR (HY000): Can't connect to loca ...
- 论文阅读笔记六:FCN:Fully Convolutional Networks for Semantic Segmentation(CVPR2015)
今天来看一看一个比较经典的语义分割网络,那就是FCN,全称如题,原英文论文网址:https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn ...
- 微信小程序 this和that详解及简单实例
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...
- jquery toast插件
插件描述:Toaster.js是一款Material Design风格jquery toast插件.Toaster.js提供5种主题,以及众多配置参数,用于显示toast类型的消息提示框.兼容性如下: ...
- [转] JavaScript 单例模式
定义 确保一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式使用的场景 比如线程池.全局缓存等.我们所熟知的浏览器的window对象就是一个单例,在JavaScript开发中,对于这种只需要 ...
- console输出彩色字体
console.log("%c%s","color: red; background: yellow; font-size: 24px;","警告!& ...
- docker-java Docker的java API
docker-java docker-java 是 Docker的 Java 版本API Docker 当前的实现基于 Jersey 2.x 因此 classpath 不兼容老版本的 Jersey 1 ...
- Berlekamp-Massey算法简单介绍
请阅读本文的同学们注意:之前这篇博客和所附代码有点问题,求的不一定是最短递推式,非常抱歉 看毛爷爷的论文大概断断续续看了一个月了,看得不是很懂,google了一波好像很快就看懂了,就先口胡一下这个算法 ...
- LoadRunner的函数
一.基础函数 在VU左边导航栏中,有三个LR框架函数,分别是vuser_init(),Action(),vuser_end(). 这三个函数存在于任何Vuser类型的脚本中: ●vuser_init ...