c语言sscanf函数的用法是什么
213
2022-08-30
HDU 6053 TrickGCD (莫比乌斯函数)
Description
You are given an array A , and Zhu wants to know there are how many different array B1≤Bi≤AiFor each pair(l,r) (1≤l≤r≤n) , gcd(bl,bl+1...br)≥2
Input
The first line is an integer T(1≤T≤10)Each test case begins with an integer number n describe the size of array AThen a line contains n numbers describe each element of AYou can assume that 1≤n,Ai≤105
Output
For the kth test case , first output “Case #k: ” , then output an integer as answer in a single line . because the answer may be large , so you are only need to output answer mod 109+7
Sample Input
144 4 4 4
Sample Output
Case #1: 17
题意
给出数组 A ,问有多个种 B
思路
针对条件,我们可以枚举 gcd ,显然对于每一个素因子 i 在范围 [i,j] 下共有 ji 个数可以整除它,假设 A 中共有 cnt 个数字处于 [j,j+i−1] 这个范围内,这也就相当于有 cnt 个位置的数可以在 ji 个因子中随意变动,共有 (ji)cnt 种方案,而对于每一个因子,其结果为 ∑i|j(ji)cnt
最终通过容斥或者莫比乌斯去掉重复部分即可。
AC 代码
#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~