题目

询问一个排列\(A\)是否能够通过\(A_i=A_{A_i}\)得到,

同时还要满足给定的两个数通过加减或者交换能够得到已知的两个数


分析

下面的就是要保证\(\gcd\)相同,但是还有上面的操作(没看到qwq)

考虑它会分成很多个环,长度为奇数的环能够找到答案,

但是长度为偶数的环需要找到另一个长度相等的环缝合,即


代码

#include <cstdio>
#include <cctype>
#define rr register
using namespace std;
typedef long long lll;
lll A,B,GCD;
int T,n,a[41],v[41],cnt[41];
inline lll iut(){
rr lll ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline lll gcd(lll x,lll y){return y?gcd(y,x%y):x;}
signed main(){
freopen("pwd.in","r",stdin);
freopen("pwd.out","w",stdout);
A=iut(),B=iut(),T=iut(),
n=iut(),GCD=gcd(A,B);
for (rr int i=1;i<=T;++i){
rr bool flag=0;
for (rr int j=1;j<=n;++j) a[j]=iut(),v[j]=cnt[j]=0;
for (rr int j=1;j<=n;++j)
if (!v[j]){
rr int z=a[j],len=1;
for (;z!=j;z=a[z]) v[z]=1,++len;
++cnt[len],v[j]=1;
}
for (rr int j=2;j<=n;j+=2)
if (cnt[j]&1) flag=1;
rr lll X=iut(),Y=iut();
if (gcd(X,Y)==GCD&&!flag) printf("Yes\n");
else printf("No\n");
}
return 0;
}

#循环节,gcd#JZOJ 5362 密码的更多相关文章

  1. hdu 4794 FIb求循环节

    很容易看出来这道题是求模n意义下fib数列的最小循环节 对于fib数列的最小循环节的求法,我们可以这样: 1.令n=p1^m1 * p2^m2 * p3^m3…… 2.分别计算fib数列在模p1^m1 ...

  2. HDU-4611 Balls Rearrangement 循环节,模拟

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4611 先求出循环节,然后比较A和B的大小模拟过去... //STATUS:C++_AC_15MS_43 ...

  3. 51nod 1035:最长的循环节

    1035 最长的循环节 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题   正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求< ...

  4. hdu 3746 Cyclic Nacklace(kmp最小循环节)

    Problem Description CC always becomes very depressed at the end of this month, he has checked his cr ...

  5. POJ 2185 Milking Grid(KMP最小循环节)

    http://poj.org/problem?id=2185 题意: 给出一个r行c列的字符矩阵,求最小的覆盖矩阵可以将原矩阵覆盖,覆盖矩阵不必全用完. 思路: 我对于字符串的最小循环节是这么理解的: ...

  6. HDU 3977 斐波那契循环节

    这类型的题目其实没什么意思..知道怎么做后,就有固定套路了..而且感觉这东西要出的很难的话,有这种方法解常数会比较大吧..所以一般最多套一些比较简单的直接可以暴力求循环节的题目了.. /** @Dat ...

  7. Common Divisors CodeForces - 182D || kmp最小循环节

    Common Divisors CodeForces - 182D 思路:用kmp求next数组的方法求出两个字符串的最小循环节长度(http://blog.csdn.net/acraz/articl ...

  8. [poj 2185] Milking Grid 解题报告(KMP+最小循环节)

    题目链接:http://poj.org/problem?id=2185 题目: Description Every morning when they are milked, the Farmer J ...

  9. UVA 10692 Huge Mods(指数循环节)

    指数循环节,由于a ^x = a ^(x % m + phi(m)) (mod m)仅在x >= phi(m)时成立,故应注意要判断 //by:Gavin http://www.cnblogs. ...

  10. 【POJ 2406】Power Strings(KMP循环节)

    终于靠着理解写出KMP了,两种KMP要代码中这种才能求循环节.i-next[i]就是循环节. #include<cstdio> #define N 1000005 char s[N]; i ...

随机推荐

  1. 【Azure 应用服务】Azure App Service 在不配置自定义域名的情况下如何使用呢?

    问题描述 根据中国法律法规的规定及相关监管机构的要求,当使用应用服务创建应用时,须立即绑定一个已经完成ICP备案的自定义域名并通过该自定义域名访问该应用服务.任何通过Internet对应用服务默认域名 ...

  2. WPF 应用迁移到 Electron 框架过程记录

    前一段时间我用 WPF 开发了一个查看 emoji 表情的小工具 https://github.com/he55/EmojiViewer ,由于最近我使用 macOS 系统比较多,我想能在 macOS ...

  3. FeignClient 报错: A bean with that name has already been defined and overriding is disabled.

    1. 错误信息 *************************** APPLICATION FAILED TO START *************************** Descript ...

  4. Java static 关键字的使用 小练习

    1 package com.bytezreo.statictest2; 2 3 /** 4 * 5 * @Description static 关键字的使用 小练习 6 * @author Bytez ...

  5. RAPTOR 一种基于树的RAG方法,RAG的准确率提高 20%

    一种理解整个文档上下文的新颖的 RAG 方法 RAG 是当前使用LLM的标准方法,大多数现有方法仅从检索语料库中检索短的连续块,限制了对整个文档上下文的整体理解. 最近,一种名为 RAPTOR (Re ...

  6. Socket编程:htons()、htonl()、ntohs()、ntohl()

    前言 在计算机网络学到Socket编程的时候,自己在Linux下用C语言试验了一番,发现了这四个古怪的函数:htons().htonl().ntohs().ntohl(). 查阅资料得知,这是涉及到网 ...

  7. XAF Blazor FilterPanel

    前言 XAF列表视图(ListView)中的过滤(Filter),可以在ListView模型的Filters节点中添加,添加的过滤项(FilterItem)会在列表视图的工具栏中以下拉列表的形式显示, ...

  8. 【算法】C和Python实现快速排序-三数中值划分选择主元(非随机)

    一.快排基础 1.1 快排的流程 将数组A进行快速排序的基本步骤-quick_sort(A): 递归基础情况:如果A中的元素个数是1或0,则返回. 选取主元:取A中的任意一个元素v,作为主元(pivo ...

  9. 【开源库推荐】#1 SpiderMan 可快速查看Android闪退崩溃日志

    原文:https://stars-one.site/2020/12/22/android-log-spiderman 开发Android的时候想必大家都遭受过这种经历: 用户手机上App闪退了,但是我 ...

  10. oracle错误之未知的命令开头imp忽略了剩余行解决方案

    现象:执行imp命令如下: imp username/password@orcl full=y  file=C:\optimove.dmp ignore=y  解决方案: imp 命令是在dos提示符 ...