B. Marin and Anti-coprime Permutation

2024-02-03 07:30
文章标签 permutation anti marin coprime

本文主要是介绍B. Marin and Anti-coprime Permutation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

B. Marin and Anti-coprime Permutation

在这里插入图片描述

题意:

构造一个排列满足
在这里插入图片描述

题解

考虑n等于2的时候
gcd(1p1,2p2)
容易想到最小的最大公约数为2,而且也只有可能为2.只要考虑二者的奇偶性与长度,当奇数与偶数个数不同时无解,否则将奇偶交错即可构造出一个合法方案。用乘法原理计数即可。
1-n:奇 偶 奇 偶
P:偶 奇 偶 奇

#include<iostream>
using namespace std;
int main(){int t;cin>>t;while(t--){long long n,ans=1;cin>>n;if(n%2){cout<<"0\n";continue;}for(int i=2;i<=n/2;i++){ans*=i*i;ans%=998244353;}cout<<ans<<endl;}
}

这篇关于B. Marin and Anti-coprime Permutation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673393

相关文章

Anti-alias的前世今生

原文: http://www.cnblogs.com/gongminmin/archive/2011/05/16/2047506.html Anti-alias,简称AA,在图形学中广泛地用于提升渲染质量。经过几十年的发展,AA也从离线渲染逐步普及到了实时渲染的领域。本系列文章将总结一下在实时渲染中使用的AA方法的前世和今生。本片集中讨论硬件提供的AA方法。 图1. 一个像素内部的采样

【ZOJ】3874 Permutation Graph 【FFT+CDQ分治】

传送门:【ZOJ】3874 Permutation Graph 题目分析: 容易知道一个个连通块内部的标号都是连续的,否则一定会有另一个连通块向这个连通块建边,或者这个连通块向另一个连通块建边。而且从左到右左边的连通块内最大的标号小于右边连通块内最小的标号。 然后我们可以构造dp方程: dp[n]=n!−i!∗dp[n−i] \qquad \qquad dp[n] = n! - i! *

LeetCode 31 Next Permutation

题意: 给出一串数字,求该排列的下一个排列。如果该排列为字典序最大排列,则输出字典序最小排列。 思路: 首先C++里面有求下一个排列的函数next_permutation,该函数返回0即表示当前排列字典序最大。 如果要自己动手实现,那么就考虑“如何找到比当前排列大1的排列”。 假设排列A(aaaXddd)比排列B(aaaYfff)大1,a部分为两排列相同部分,X与Y表示最靠左边不同

String Permutation

Given two strings, write a method to decide if one is a permutation of the other. Example Example 1:Input: "abcd", "bcad"Output: TrueExample 2:Input: "aac", "abc"Output: False 思路:count比较一下就可以;

Marin说PCB之闲谈设计经验之沟通

今天这期小编我不讲解技术,主要是分享一些个人的工作中的一些经验吧,首先给诸位分享的就是小编我的学的降龙十八掌第一式:沟通,为啥要说沟通是第一个我要说的话题呢,这个说来话长了,小编我就长话短说了。 因为对于一个刚刚接触到PCB行业的小白来说吧,你的画图技术能力是一方面,沟通的能力也是很重要的了,我在之前的国外的那家公司的上班的时候,经常听我们主管说的一局话就是学会有效沟通,这样你做事情就会

Marin说PCB之TP测试的Layout设计要求

提及到TP点这个器件想必诸位道友们肯定不会陌生吧,我们的单板在量产之前都是需要做很多测试的,一般在产品研发的A版本和B版本的时候都是需要在单板上加上这个器件的。小编我最近在做一个改板,项目组为了降本增效,把单板的尺寸缩小了很多,所以很多模块都需要压缩了,小编我在细化压缩一个MCU模块布局,做完了我邮件发给了英国伦敦的同事约翰,他看完飞书给我说了虽然现在的MCU模块的布局看上去是小了很多,到是你的T

numpy.random中的shuffle和permutation

shuffle: 沿着第一个axis打乱子数组的顺序,但是内容不变,相当于沿着第一个axis把array切成n个sub-array,然后打乱sub-array的顺序。(如果只有一维就只打乱元素) >>> arr = np.arange(9).reshape((3, 3))>>> np.random.shuffle(arr)>>> arrarray([[3, 4, 5],[6, 7, 8]

numpy.random.permutation

随机排列一个序列,返回一个排列的序列。 >>> np.random.permutation(10) array([1, 7, 4, 3, 0, 9, 2, 5, 8, 6]) >>> np.random.permutation([1, 4, 9, 12, 15]) array([15,  1,  9,  4, 12]) >>> arr = np.arange(9).reshape((3, 3))

单词是构建出来的,以anti-institutionalization为例

英语单词是构建了来的,具有特定的规则,就像建房子一样。 例词:anti-institutionalization 反制度化 (一)从institute到anti-institutionalization institute v.建立 // institution n.机构;制度 //= institute + ion 名缀 institutional a.机构的 //=institution

Java实现STL中的全排列函数next_permutation()

目录 一、引言 二、全排列函数next_permutation() 三、next_permutation()的使用 四、Java实现next_permutation() 五、使用next_permutation()实现全排列 一、引言 相信很多小伙伴们都做过全排列的算法题,输入一个n,输出1~n的全排列。对于这个问题,最经典的是实现方法应该是通过回溯实现 。 代码如下 i