Edward has a set of n integers {a1, a2,…,an}. He randomly picks a nonempty subset {x1, x2,…,xm} (each nonempty subset has equal probability to be picked), and would like to know the expectation of [gcd(x1,x2,…,xm)]k[gcd(x1,x2,…,xm)]k[gcd(x1, x2,…,xm)]^k.

Note that gcd(x1, x2,…,xm) is the greatest common divisor of {x1, x2,…,xm}.

Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:

The first line contains two integers n,k(1≤n,k≤106).n,k(1≤n,k≤106).n, k (1 ≤ n, k ≤ 10^6). The second line contains n integers a1,a2,…,an(1≤ai≤106).a1,a2,…,an(1≤ai≤106).a1, a2,…,an (1 ≤ ai ≤ 10^6).

The sum of values max{ai} for all the test cases does not exceed 2000000.

Output
For each case, if the expectation is E, output a single integer denotes E · (2n - 1) modulo 998244353.

Sample Input
1
5 1
1 2 3 4 5
Sample Output
42
这个有点类似筛法,以前做过类似的题目,但是没处理好怎么快速统计相关倍数的问题。
代码

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<vector>
#define maxx 1000005
#define mod 998244353
using namespace std ;
vector<int> fac[maxx];
int num[maxx];
long long f[maxx];
long long P(long long a,long long b)
{if(a==0)return 0;long long ans=1;while(b){if(b&1)ans=ans*a%mod;a=a*a%mod;b>>=1;}return ans;
}
int n,k;
int main()
{int t;cin>>t;while(t--){cin>>n>>k;memset(num,0,sizeof(num));memset(f,0,sizeof(f));int maxn=1;for(int i=0;i<n;i++){int x;scanf("%d",&x);maxn=max(maxn,x);num[x]++;}long long ans=0;for(int g=maxn;g>=1;g--){int cnt=0;for(int j=g;j<=maxn;j+=g){f[g]=(f[g]-f[j])%mod;cnt+=num[j];//很巧妙的直接在这里统计有多少个是g的倍数。}f[g]=(f[g]+P(2,cnt)-1)%mod;f[g]=(f[g]+mod)%mod;ans=(ans+f[g]*P(g,k)%mod)%mod;}cout<<ans<<endl;}return 0;
}

GCD Expectation ZOJ - 3868 (容斥)相关推荐

  1. P1447-[NOI2010]能量采集【GCD,数论,容斥】

    正题 题目链接:https://www.luogu.org/problemnew/show/P1447 题目大意 求∑i=1n∑j=1mgcd(i,j)∗2−1\sum_{i=1}^n\sum_{j= ...

  2. 2022杭电多校九 1008-Shortest Path in GCD Graph(质因子+容斥)

    题目链接:杭电多校九 - Virtual Judge 题目: 样例输入: 6 2 4 5 3 6 样例输出: 1 1 2 2 题意:给定n个点的完全图,两个点之间的距离为他们的gcd,q次询问,每次询 ...

  3. 【组合数学--容斥】CodeTON Round 3 (Div. 1 + Div. 2, Rated, Prizes!) D. Count GCD

    大概思路想出来了,就差不会写容斥了.... 题意: 思路: 这是一开始的思路: 推到最后就是求在区间[1,m/a[i+1]中有多少k2满足以下条件,gcd(k1,k2)=1,k1是一个定值 这就是容斥 ...

  4. hdu 1796 How many integers can you find 容斥定理

    一开始看 这里 这个文章博主写得很好. 当举容斥定理的所谓 奇数为负 偶数为正的时候. 我直接就认为是 a*b 了.实际上是lcm(a,b). 由于博文中的因子都是互素的(素数之间).所以lcm(a, ...

  5. 【GDOI2016模拟3.16】幂(容斥 + 模型复杂转化)

    [GDOI2016模拟3.16]幂 \(X\in[1,A],Y\in[1,B]\),问:\(x^y\)的不用取值个数. \(A,B\)都是\(10^9\)级别. 然后我们开搞. 首先,假设一个合法的\ ...

  6. BZOJ2301:[HAOI2011]Problem b(莫比乌斯反演,容斥)

    Description 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. Input 第一行一个整数 ...

  7. CF(439E - Devu and Birthday Celebration)莫比乌斯容斥

    题意:将n个糖果插入f-1个挡板分成f分(a1,a2,a3...af). 问有多少种分法能够使得gcd(a1,a2,a3...af)=1; 解法.莫比乌斯容斥,首先按1为单位分,这时候有C(n-1,f ...

  8. NYOJ 762 第k个互质数(二分 + 容斥)

    第k个互质数 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 两个数的a,b的gcd为1,即a,b互质,现在给你一个数m,你知道与它互质的第k个数是多少吗?与m互质的数按 ...

  9. ACM-ICPC 2018 沈阳赛区网络预赛 Spare Tire(容斥+公式推)

    A sequence of integer \lbrace a_n \rbrace{an​} can be expressed as: \displaystyle a_n = \left\{ \beg ...

最新文章

  1. java spring 单例_spring怎么实现单例模式?
  2. VC++中使用MFC通过ADO连接数据库
  3. REST Framework 的用户认证组件
  4. 各地新闻客户端名称_广西新闻网《“益”起脱贫》节目首播!县长做主播,一天卖出5万多斤圣女果...
  5. 阅读笔记,软件需求分析
  6. 如何部署 Hyperic ,使得从内网监测外网服务器
  7. 【算法学习】图相关算法编程实现-深度优先遍历和广度优先遍历
  8. Java基础语法初学者了解
  9. postMessage解决跨域问题
  10. 线性代数的相关计算(numpy)
  11. JConsole远程配置
  12. 菜鸟学python-基础(2)
  13. docker 网络模式之 macvlan模式
  14. 功能测试用例设计方法,一文带你了解用例设计,再也不担心用例了
  15. 知道为什么HTML页面在电脑上和手机上的布局不同吗?这篇文章带你走进Element UI的简单适配
  16. 用户使用调查报告(追光的人)
  17. 30分钟学会shapely空间几何分析
  18. 据说大学录取率是90%,我对大米的期许是考上高中
  19. 贝叶斯神经网络的 MCMC 训练 MCMC Training of Bayesian Neural Networks
  20. patch 修补文件命令

热门文章

  1. 【转】TinyXML2 入门教程
  2. 云服务器aip,云服务器API接口-云服务器的使用
  3. Gerrit项目权限设置总结
  4. oracle remap schema,impdp的remap_schema选项的另一个schema是否要重建
  5. 如何用PS把照片变成红/白/蓝底
  6. 为什么你的孩子拼命做题,成绩还总是上不去?
  7. 安卓 类微信开发(二)
  8. Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找
  9. 月圆“会客厅“欢度国庆节,平度举行2020中秋十一晚会
  10. win10使用administrator登录却仍然没权限