hdu1222

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1222

题目大意:

大灰狼追小白兔。小白兔可以躲起来的洞绕成一个圈,大灰狼从0这个点出发,每次走m个,问这些洞有木有可以不被狼找到的

解题思路:

相当于判断m是不是模n加群的生成元,如果是的话,那么可以到达0到n-1每个洞,不是则不能到达每个洞。

而判断是否为生成元,直接判断gcd(n, m) = 1,等于1就是生成元。

关于循环群生成元的知识点这里 -> 传送门

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<set>
#include<cmath>
using namespace std;
const int maxn = 1e4 + ;
typedef long long ll;
ll T, n, m;
ll gcd(ll a, ll b)
{
return b == ? a : gcd(b, a % b);
}
int main()
{
cin >> T;
while(T--)
{
cin >> n >> m;
if(gcd(n, m) == )printf("NO\n");
else printf("YES\n");
}
return ;
}

hdu1014

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=1014

题目大意:

公式:seed(x+1) = [seed(x) + STEP] % MOD;如果STEP=3,MOD=5,那么seed的值为以3,1,4,2,0为一组循环,即[0,MOD-1],这种称为“Good Choice”;如果STEP=15,MOD=20,那么seed的值为以15,10,5,0为一组循环,不满足[0,MOD-1],所以这种称为“Bad Choice”。

思路:

和之前一样,这里代码直接给暴力的

 #include<stdio.h>
int a[];
int main()
{
int step,mod,i;
while(scanf("%d%d",&step,&mod)!=EOF)
{
a[]=;
for(i=;i<=mod;i++)
{
a[i]=(a[i-]+step)%mod;
if(a[i]==)break;
}
if(i==mod)printf("%10d%10d Good Choice\n\n",step,mod);
else printf("%10d%10d Bad Choice\n\n",step,mod);
}
return ;
}

hdu1222&hdu1014 循环群的生成元的更多相关文章

  1. c++ 离散数学 群的相关判断及求解

    采用C/C++/其它语言编程,构造一个n阶群<G={a,b,c,…},*>,G的阶|G|满足:3<=|G|<=6 1.判断该群是否是循环群,若是,输出该群的某个生成元. 2.给 ...

  2. 证明与计算(2): 离散对数问题(Discrete logarithm Problem, DLP)

    离散对数问题,英文是Discrete logarithm Problem,有时候简写为Discrete log,该问题是十几个开放数学问题(Open Problems in Mathematics, ...

  3. hdu1014

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 //hdu1014 0ms #include<stdio.h> #include&l ...

  4. 生成元(Digit Generator ,ACM/ICPC Seoul 2005 ,UVa 1583)

    生成元:如果 x 加上 x 各个数字之和得到y,则说x是y的生成元. n(1<=n<=100000),求最小生成元,无解输出0. 例如:n=216 , 解是:198 198+1+9+8=2 ...

  5. GF(2^8)生成元

    目的是找出所有GF(2^8)的生成元. 方法很简单,从2开始遍历,将每个元素都与自身相乘255次,看是否能得到1~255.若能,则是生成元. #include<iostream> #inc ...

  6. [C++]最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

    Question 例题3-5 最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583) 如果x+x的各个数字之和得到y,就是说x是y的生成元.给出n( ...

  7. 生成元(UVa1583)

    题目具体描述见:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...

  8. HDU6038:Function(循环群/节+找公式)

    传送门 题意 给出一个\(0\sim n-1\)的排列a,一个\(0\sim {m-1}\)的排列b,询问满足\[f(i)=b_{f(a_i)}~~(0\le i\le n-1)\]的函数的个数 分析 ...

  9. 生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)

    如果x加上x的各个数字之和得到y,就说x是y的生成元.给出n(1≤n≤100000),求最小 生成元.无解输出0.例如,n=216,121,2005时的解分别为198,0,1979. [分析] 本题看 ...

随机推荐

  1. [SCOI2011] 糖果

    luogu Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到 ...

  2. 001: 徒手建立一个JavaWeb应用

    不借助IDE,我们徒手建立一个JavaWeb应用. web.xml: <?xml version="1.0" encoding="ISO-8859-1"? ...

  3. Redis登录密码设置

    1. 更改Redis.conf配置 # requirepass foobared 去掉注释,foobared改为 自己的password , 我测试的时候用的是默认的 foobared 2.启动red ...

  4. 求逆序对[树状数组] jdoj

    求逆序对 题目大意:给你一个序列,求逆序对个数. 注释:n<=$10^5$. 此题显然可以跑暴力.想枚举1到n,再求在i的后缀中有多少比i小的,统计答案即可.这显然是$n^2$的.这...显然过 ...

  5. C语言博客作业—函数

    一.PTA实验作业 题目1:使用函数输出水仙花数 1. 本题PTA提交列表 2. 设计思路 (1)首先定义函数narcissistic(number)判断number是否为水仙花数: (2)narc用 ...

  6. C语言博客作业一二维数组

    一.PTA实验作业 题目1.7-5 数组循环左移 1.本题PTA提交列表 2.设计思路 定义变量a[100]存放整数,整数n,整数m,change作为交换数组的媒介,j,i作为循环的变量 输入整数n, ...

  7. SQLSERVER2012的分页新功能

    SQLSERVER2012的分页新功能 简介 SQL Server 2012中在Order By子句之后新增了OFFSET和FETCH子句来限制输出的行数从而达到了分页效果.相比较SQL Server ...

  8. 冲刺NO.10

    Alpha冲刺第十天 站立式会议 项目进展 项目核心功能逐步构建完成,测试工作也已开始.主要对部分功能组合进行测试以测试系统可用性. 问题困难 项目的主要困难在这个时间点主要存在于测试工作中,测试工作 ...

  9. C语言--第14.15周作业

    一. 7-3 将数组中的数逆序存放 1.代码 #include 2<stdio.h> int main() { int a[10]; int i, n, s; scanf("%d ...

  10. Linux进程调度分析

    原文:http://www.2cto.com/os/201112/113229.html 操作系统要实现多进程,进程调度必不可少. 有人说,进程调度是操作系统中最为重要的一个部分.我觉得这种说法说得太 ...