#循环节,gcd#JZOJ 5362 密码
题目
询问一个排列\(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 密码的更多相关文章
- hdu 4794 FIb求循环节
很容易看出来这道题是求模n意义下fib数列的最小循环节 对于fib数列的最小循环节的求法,我们可以这样: 1.令n=p1^m1 * p2^m2 * p3^m3…… 2.分别计算fib数列在模p1^m1 ...
- HDU-4611 Balls Rearrangement 循环节,模拟
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4611 先求出循环节,然后比较A和B的大小模拟过去... //STATUS:C++_AC_15MS_43 ...
- 51nod 1035:最长的循环节
1035 最长的循环节 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 正整数k的倒数1/k,写为10进制的小数如果为无限循环小数,则存在一个循环节,求< ...
- hdu 3746 Cyclic Nacklace(kmp最小循环节)
Problem Description CC always becomes very depressed at the end of this month, he has checked his cr ...
- POJ 2185 Milking Grid(KMP最小循环节)
http://poj.org/problem?id=2185 题意: 给出一个r行c列的字符矩阵,求最小的覆盖矩阵可以将原矩阵覆盖,覆盖矩阵不必全用完. 思路: 我对于字符串的最小循环节是这么理解的: ...
- HDU 3977 斐波那契循环节
这类型的题目其实没什么意思..知道怎么做后,就有固定套路了..而且感觉这东西要出的很难的话,有这种方法解常数会比较大吧..所以一般最多套一些比较简单的直接可以暴力求循环节的题目了.. /** @Dat ...
- Common Divisors CodeForces - 182D || kmp最小循环节
Common Divisors CodeForces - 182D 思路:用kmp求next数组的方法求出两个字符串的最小循环节长度(http://blog.csdn.net/acraz/articl ...
- [poj 2185] Milking Grid 解题报告(KMP+最小循环节)
题目链接:http://poj.org/problem?id=2185 题目: Description Every morning when they are milked, the Farmer J ...
- UVA 10692 Huge Mods(指数循环节)
指数循环节,由于a ^x = a ^(x % m + phi(m)) (mod m)仅在x >= phi(m)时成立,故应注意要判断 //by:Gavin http://www.cnblogs. ...
- 【POJ 2406】Power Strings(KMP循环节)
终于靠着理解写出KMP了,两种KMP要代码中这种才能求循环节.i-next[i]就是循环节. #include<cstdio> #define N 1000005 char s[N]; i ...
随机推荐
- Mqtt开发笔记:Mqtt服务器搭建
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- linux基本命令--day02
目录树架构示意图 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以 ...
- c# rdkafka 设置偏移量(offset)
参考资料: librdkafka: 如何设置Kafka消费者订阅消息的起始偏移位置 领导要求kafka消费者端消费最新的数据. 不知道怎么设置偏移量,查了资料. 用惯了封装好的东西,都不知道怎么设置了 ...
- CXP协议的传输层介绍 8b/10b编码
8b/10b编码与K码 upconnection 和downconnection均使用8b/10b编码,因此我们先简单回顾一下8b/10b吧 8B/10B编码被广泛应用到高速串行总线,如IEEE139 ...
- 3.1蓝桥杯每日知识点,全排列permutation
next_permutation()函数 适用于生成当前序列的下一个排列 如果存在下一个排列,则将当前序列更改为下一个排列,并返回true 如果当前序列已经是最后一个排列,则将序列更改为第一个排列,并 ...
- UG474
为了对工程的资源利用率进行优化,我们首先需要知道当前工程对资源的利用率情况.在Vivado下,我们可以查看工程的资源利用率情况,在下面这张图中,其罗列出了整个工程所使用的资源情况.首先,下面我们需要一 ...
- Java instanceof 全小写 关键字使用
1 package com.bytezreo.duotai2; 2 3 import java.sql.Date; 4 5 /** 6 * 7 * @Description 面向对象的特征三 ---- ...
- 基于python的json和cvs格式转换
一 概念 1 json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Pr ...
- 解决jenkins Git Publisher自动打tag的问题
简单配置一下 然后开始构建,然后报错如下 The recommended git tool is: NONE using credential 647ee613-5032-4894-aaeb-fe07 ...
- nuxt3前端开发教程
源码请移步:springboot+vue3+nuxt3+ts+minio开发的dsblog3.0前后端博客 - java大师 (javaman.cn) 目录结构如下: 一.nuxt3配置文件 这段代码 ...