CF竞赛题目讲解_CF1749D(初等数论 + 构造素数列表)
2022-11-03 14:17 作者:Clayton_Zhou | 我要投稿
AC代码
https://codeforces.com/contest/1749/submission/179012179
题意:
考虑一个长度为n的数组a,其元素编号为1到n。如果gcd(bi,i)=1,则可以删除a的第i个元素,
其中gcd表示最大公约数。删除元素后,右侧的元素将向左移动一个位置。
具有n个整数的数组b,1≤bi≤n−i+1是数组a的移除序列,如果可以移除a的所有元素。
如果移除第b1个元素,那么移除第b2个元素,…,然后移除第bn个元素。
例如,设a=[42,314]:[1,1]是一个移除序列:当移除数组的第1个元素时,条件gcd(42,1)=1成立,数组变为[314];
再次删除第1个元素时,条件gcd(314,1)=1成立,数组变为空。
[2,1]不是删除序列:当您尝试删除第2个元素时,条件gcd(314,2)=1为假。
如果一个数组至少有两个删除序列,则它是模糊的。例如,数组[1,2,5]是模糊的:
它有移除序列[3,1,1]和[1,2,1]。数组[42,314]并不模糊:它唯一的移除序列是[1,1]。
给你两个整数n和m。你需要计算模糊数组a的数量,使得a的长度从1到n,每个ai都是从1到m的整数。
题解:
初等数论 + 构造素数列表