不净的圣杯 SRM 20

背景

作为一张BUG级别的卡,官方打算把它修改得人畜无害一些……

虽然名字还没想好,但是能力大概是对敌方所有单位造成d点伤害,d为自己牌组中所有卡的编号的最大公约数。这无疑是一个全新的技能类型,决定一出,负责“自动编辑卡组”系统的工程师们发愁了,要如何让AI把这一鬼畜设定考虑进去呢?我们现在只能假定每张牌被编进卡组的概率是相等的,工程师们想知道d的期望值。

描述

给n个数,问随机从中挑出一些数(大于等于1个)后,挑出数字的期望gcd。输出期望值乘并对1e9+7取模后的值。

输入格式

第一行两个正整数n,m。

第二行n个不超过m的正整数。

输出格式

一个整数,期望值乘并对1e9+7取模后的值。

样例输入

3 5
1 2 3

样例输出

10

数据范围

测试点 n m
1 10
2 10
3 10
4 20
5
6
7
8
9
10

样例解释

答案为1*5+2*1+3*1=10

—————————————————————————

这题一眼看去很明显的就是莫比乌斯反演(主观臆断QAQ

g(x)就是以x为gcd的方案数(子集数)

f(x)就是以x(及x的倍数)为gcd的方案数

f(x)可以暴力求O(mlogm) 可以先求出T(x)就是以是x倍数的数的个数

f(x)=2^T(x)-1 至于莫比乌斯函数mu(x)可以线性筛 这样之后及可以求答案辣

那个乘上2^n-1其实就是为了抵消期望而已 题目就是求gcd和

#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
const int M=1e6+,mod=1e9+;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
LL ans,g[M],n,m,k,w[M],t[M];
LL ly[M],f[M],vis[M],mu[M],cnt,p[M];
void prepare(){
ly[]=; for(int i=;i<=m;i++) ly[i]=ly[i-]*%mod;
mu[]=;
for(int i=;i<=m;i++){
if(!vis[i]){p[++cnt]=i;mu[i]=-;}
for(int j=;j<=cnt&&i*p[j]<=m;j++){
vis[i*p[j]]=;
if(i%p[j]) mu[i*p[j]]=-mu[i];
else{mu[i*p[j]]=; break;}
}
}
}
int main(){
n=read(); m=read();
prepare();
for(int i=;i<=n;i++) k=read(),w[k]++;
for(int i=;i<=m;i++){
for(int j=i;j<=m;j+=i) t[i]=(t[i]+w[j])%mod;
f[i]=(ly[t[i]]-+mod)%mod;
}
for(int i=;i<=m;i++) for(int k=;k*i<=m;k++) g[i]=(g[i]+mu[k]*f[k*i]%mod)%mod;
for(int i=;i<=m;i++) ans=(ans+g[i]*i%mod)%mod;
printf("%lld\n",(ans+mod)%mod);
return ;
}

汕头市队赛SRM 20 T2不净的圣杯的更多相关文章

  1. 汕头市队赛SRM 20 T1魔法弹

    T1 背景 “主角光环已经不能忍啦!” 被最强控制AP博丽灵梦虐了很长一段时间之后,众人决定联合反抗. 魂魄妖梦:“野怪好像被抢光了?” 十六夜咲夜:“没事,我们人多.” 然后当然是以失败告终了. 八 ...

  2. 汕头市队赛SRM 20 T3 灵魂觉醒

    背景 自从芽衣.布洛妮娅相继灵魂觉醒之后,琪亚娜坐不住了.自己可是第一个入驻休伯利安号的啊!于是她打算去找德丽莎帮忙,为她安排了灵魂觉醒的相关课程. 第一天,第一节课. “实现灵魂觉醒之前,你需要先将 ...

  3. 汕头市队赛 SRM 07 D 天才麻将少女kpm

    这道题放了很久还是回来补了 D 天才麻将少女KPM SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周叒打了n场麻将,但她这次又没控分,而且 ...

  4. 汕头市队赛 SRM 07 B 好玩的麻将

    B 好玩的麻将 SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周又打了n场麻将,又控了分使得自己的排名是1..n的一个排列.     但她 ...

  5. 汕头市队赛 SRM 06 C 秀恩爱

    C 秀恩爱 SRM 06 背景&&描述         KPM坐在直升机上俯瞰小渔村景象.         渔村可看作二维平面,密密麻麻地到处都是单身狗,KPM当前所在坐标为(sx,s ...

  6. 汕头市队赛 SRM 06 A 撕书

    A 撕书 SRM 06 背景&&描述 游行寺汀正在杀书.         书总共有n页,每页都可以看作是一个小写英文字母,所以我们可以把书看成长度为n的字符串s.         琉璃 ...

  7. 汕头市队赛 SRM 06 B 起伏的排名

    B 起伏的排名 SRM 06 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     在上个星期她打了n场麻将,每场麻将都有n名玩家.KPM自然记得自己的n次排名.   ...

  8. 汕头市队赛 SRM 08 B

    B-3 SRM 08 描述 给长度为 n 的数列 A 和长度为 m 的数列 B,问有多少长度为 m 的数列 C 满足 输入格式 第一行俩整数 n 和 m 第二行 n 个整数 ,表示数列 A 第三行 m ...

  9. 汕头市队赛 SRM 08 C

    C-3 SRM 08 描述 给一个图,n 个点 m 条双向边,每条边有其长度.n 个点中有 k 个是特殊点,问任意两个特殊点的最短路是多少. 输入格式 第一行三个整数 n m k 第二行 k 个整数  ...

随机推荐

  1. 20个实用的Linux命令

    20个实用的Linux命令 2016-04-16 程序员之家 1. 命令:sl (蒸汽机车) 你可能了解 ‘ls’ 命令,并经常使用它来查看文件夹的内容.但是,有些时候你可能会拼写成 ‘sl’ ,这时 ...

  2. 从大量的IP访问记录中找到访问次数最多的IP

    1.内存不受限 一个IP有32bit(4Byte),1GB=10亿,那么在4GB内存的情况下,可以存10亿个IP.用HashMap,边存入IP边维护一个最大次数,这样遍历一遍就可以求出,时间复杂度为O ...

  3. Mysql查询优化从入门到跑路(三)查询的基本操作

    查询的基本操作 1.选择操作 对应的是限制条件,操作对象是二维表的行.     优化方式:选择操作下推     目的:尽量减少连接操作前的元租数,使得中间临时关系尽量少(元祖数少,连接得到的元组数就少 ...

  4. [剑指Offer] 56.删除链表中重复的结点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  5. 第30天:DOM对象操作

    JS包括三部分:ECMAscript.DOM(文档对象).BOM(浏览器对象) 一.DOM(文档对象)DOM树节点(元素.属性.标签.标记等都是节点) 二.访问节点 documment.getElem ...

  6. 【Python】关于Python里面小数点精度控制的问题

    基础 浮点数是用机器上浮点数的本机双精度(64 bit)表示的.提供大约17位的精度和范围从-308到308的指数.和C语言里面的double类型相同.Python不支持32bit的单精度浮点数.如果 ...

  7. bzoj4031-小Z的房间

    题目 给一个\(n\*m\)的矩阵,每个点可能为"."或"*",有多少种方法把矩阵中的点全部连接起来,并且每两个点之间只有一条路径. 分析 题目所求的是一个矩阵 ...

  8. P2580 于是他错误的点名开始了

    题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...

  9. 【题解】Uoj79一般图最大匹配

    带花树裸题,感觉带花树强强……不会的勿看此文,解释的可能不对,只是给自己看的!!!如题,带花树即为求一般图最大匹配算法(匈牙利与dinic为二分图最大匹配).推荐论文:2015年<浅谈图的匹配算 ...

  10. CF#508 1038E Maximum Matching

    ---题面--- 题解: 感觉还是比较妙的,复杂度看上去很高(其实也很高),但是因为n只有100,所以还是可以过的. 考虑一个很暴力的状态f[i][j][x][y]表示考虑取区间i ~ j的方格,左右 ...