题意:
有 n n n个盒子,其中手帕可能在某一个盒子里。现在你在第一个盒子,给你一个 m m m,表示下次要找的位置间隔,即找完第1个盒子后,要找第 1 + m 1 + m 1+m个盒子,依次类推,这个过程是循换的。问你能否找到手帕。
思路:
上述题意就是问你能否访问全部的盒子。
很显然第一个盒子是一定会访问的,然后往后依次 + m +\ m + m去访问。

这个问题其实就是在说 m m m是否是模 n n n剩余类加群中的生成元(离散中又有讲哈,有疑问的自己翻离散课本去),其中第一个盒子显然就是幺元,给一个盒子编号为0,第二个盒子标号为1,…,第n个盒子标号为 n - 1。
设 G = G= G= ( n ‾ , + n ) (\underline{n},+_n) (n​,+n​)
假设 m m m是 n n n阶剩余类加群的生成元,那么 m ∈ G m\in G m∈G
那么 对于 ∀ h \forall h ∀h ∈ G \in G ∈G
都有 m p ≡ h ( m o d n ) m^{p} \equiv h\pmod{n} mp≡h(modn)
又 m p = p ∗ m m^p=p*m mp=p∗m,因为 h h h可以取G中任何一个元素,有 1 1 1一定是G的生成元,所以不妨假设 h = 1 h =1 h=1
即有
m ∗ p ≡ 1 ( m o d n ) m*p\equiv 1\pmod{n} m∗p≡1(modn)
那么此模线性方程有解当且仅当 ( m , n ) = 1 (m,n)=1 (m,n)=1
故 m m m为G的生成元 当且仅当 m m m与 ∣ G ∣ |G| ∣G∣互质。
得证。
还有,一定要认真读输入输出…不是的话输出"POOR Haha",不是NO…
A C C o d e : AC \ Code: AC Code:

#include<iostream>
#include<cstring>
#include<queue>
#include<map>
#include<cmath>
#include<set>
#include<stack>
#include<cstdio>
#include<sstream>
#include<vector>
#include<bitset>
#include<algorithm>
#include<unordered_map>
using namespace std;
#define read(x) scanf("%d",&x)
#define Read(x,y) scanf("%d%d",&x,&y)
#define gc(x)  scanf(" %c",&x);
#define mmt(x,y)  memset(x,y,sizeof x)
#define write(x) printf("%d\n",x)
#define pii pair<int,int>
#define INF 0x3f3f3f3f
#define ll long long
const int N = 100000 + 100;
const int M = 3e6 + 1005;
typedef long long LL;
int gcd(int a,int b){if(b) return gcd(b,a%b);else return a;
}
int main(){int n,m;while(scanf("%d%d",&n,&m) == 2&&(n!=-1&&m!=-1)){if(gcd(n,m) == 1) {puts("YES");}else puts("POOR Haha");}
}

hdu2104 hide handkerchief(模n剩余类加群生成元)相关推荐

  1. HDU 2104 hide handkerchief

    题目HDU 2104:http://acm.hdu.edu.cn/showproblem.php?pid=2104 Problem Description The Children's Day has ...

  2. php 跳转qq群代码_PHP小脚本~QQ免KEY值加群

    加群链接需要 idkey 的,该源码自动解析 idkey,实现免 idkey 加群. 不保证长时间有用~有兴趣的试试看哦~ PS:你要问有啥用?????答案:没啥用! 好了!代码奉上! /*免 IDK ...

  3. hdu hide handkerchief

    hide handkerchief Time Limit: 10000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  4. 【HDU - 2104】hide handkerchief (素数)

    题干: The Children's Day has passed for some days .Has you remembered something happened at your child ...

  5. OC 应用跳转QQ私聊界面或者申请加群

    申请加群 NSString *qq_number = QQ;NSString* urlStr = [NSString stringWithFormat:@"mqqapi://card/sho ...

  6. QQ 一键加群、扫二维码加群 - 腾讯官方API文档接入

    QQ 一键加群.扫二维码加群 - 腾讯官方API文档接入 QQ一键加群功能,腾讯API生成链接和二维码等等 获取地址:腾讯官方API文档接口 使用方法:引入对应的链接即可 这里有生成图片.二维码的功效 ...

  7. php开源qq群,QQ群免IDKEY加群PHP源码

    这篇文章上次修改于 18696 天前,可能其部分内容已经发生变化,如有疑问可询问作者. 加群链接需要idkey的,该源码自动解析idkey,实现免idkey加群. 该源码来自彩虹秒赞系统. 例如:你的 ...

  8. QQ群一键加群代码调用官方API

    公用一键加群:https://api.mlwei.com/qun/?guin=259763410 PC端加群:https://api.mlwei.com/qun/?guin=259763410& ...

  9. Pc端微信加群的测试用例

    Pc端微信加群的测试用例和5. app端微信加群的测试用例:     1.可发送信息:语音,文字,图片,表情,链接,字符及长度     2.聊天界面中的文字是否可复制,删除,收藏,翻译,头像,昵称显示 ...

最新文章

  1. FreeModbus 移植于STM32 实现Modbus RTU通信
  2. svg 转图标字体制作
  3. 数据结构2:中序线索化二叉树为什么要通过pre设置后继结点
  4. 谷歌 chrome 浏览器开发者工具打不开的解决方法
  5. Druid 内置Filter配置
  6. Android Studio添加aar
  7. Android开发之动态添加控件
  8. mysql5.7 solo web服务器
  9. 上篇 | 如何设计一个多轮对话机器人
  10. [LeetCode]题解(python):086-Partition List
  11. mysql启动错误处理
  12. Phoenix使用注意事项以及跟标准sql的不同
  13. Windows下 OpenCV 的下载安装教程(详细)
  14. word为什么前面空白但是字上不去?
  15. Pythonic写法
  16. 判断闰年(YZOJ-1045)
  17. Abp vnext Web应用程序开发教程 2 —— 图书列表页面
  18. 移动硬盘无法被识别怎么办?
  19. 修改安卓系统应用,将自己的app变成系统应用(需要root)
  20. 【大数据之Hadoop3.x】

热门文章

  1. 如何做好人才盘点?企业需要从这五个方面入手
  2. matlab高级编程 苏金明,MATLAB高级编程
  3. 大语言模型的最新研究方向综述
  4. 苹果手机键盘html代码大全,CSS_CSS3制作苹果风格键盘特效,效果预览:html标签:- phpStudy...
  5. 使用 Apache PDFBox 操作PDF文件
  6. 时间范围选择器默认开始时间前5天,前5年,前5月
  7. 取消默认事件和绑定默认事件
  8. 和平精英奇葩吃鸡操作,帮你苟到最后轻松吃鸡
  9. 面向对象设计的七大设计原则详解
  10. flutter录音_Flutter直播SDK怎么使用?5步快速开发直播应用