Description

Problem


Solution

原问题可以转化为求,最后再乘上一个

那么考虑容斥得到每一种集合的贡献,推一下容斥系数。

表示集合大小为时的容斥系数。

,此时相当于没有选任何操作,那么中所有灯都是红色。

,此时如果被选了的倍数次,那么最后容斥出来系数肯定应该是,还要减去之前的容斥系数对这一次的影响,假设之前的集合大小为,并且这些集合包含于大小于的集合,这样的集合应该有个。

表示集合的最小公倍数,那我们就可以把用上述量表示出来了。

,发现这个式子本质上就是给予了每个集合一个权值,然后枚举每个集合,对其所有子集求权值和。这可以用或者算出。

总的时间复杂度


Code_by_uselessName

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#define GET getchar()
#define LL long long
using namespace std;namespace FastIO{const LL L=(1<<20);char buf[L],*S,*T;#ifdef ONLINE_JUDGEinline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,L,stdin);if(S==T)return EOF;}return *S++;}#endifinline LL read(){LL s=0,f=1;char t=GET;while('0'>t||t>'9'){if(t=='-')f=-1;t=GET;}while('0'<=t&&t<='9'){s=(s<<1)+(s<<3)+t-'0';t=GET;}return s*f;}
}
using FastIO::read;const LL N=25;
const LL Mod=998244353;
LL m,n,val[N],inv;LL Fpow(LL a,LL b){LL ans=1;while(b){if(b&1)ans=ans*a%Mod;b>>=1;a=a*a%Mod;}return ans;
}namespace Fast_Storm{const LL _N=(1<<20);LL gcd(LL a,LL b){if(!b)return a;return gcd(b,a%b);}LL lcm(LL a,LL b){return a/gcd(a,b)*b;}LL Lcm[_N],siz[_N],Sum[_N],C[N][N],P[N],Ans;void Pre(LL up=20){C[0][0]=1;for(LL i=1;i<=up;i++){C[i][0]=C[i][i]=1;for(LL j=1;j<i;j++)C[i][j]=(C[i-1][j-1]+C[i-1][j])%Mod;}}LL Upper(LL x){return (x%Mod+Mod)%Mod;}void M(LL &x){if(x>=Mod)x-=Mod;if(x<0)x+=Mod;}void Fwt(LL Max){for(LL i=1;i<Max;i<<=1)for(LL j=0;j<Max;j+=(i<<1))for(LL k=0;k<i;k++)M(Sum[i+j+k]+=Sum[j+k]);}void Solve(){Pre();LL All=(1<<m)-1;for(LL i=0;i<=m;i++){P[i]=(i%4==0);for(LL j=0;j<i;j++)M(P[i]-=C[i][j]*P[j]%Mod);}Lcm[0]=1;for(LL S=0,pos;S<=All;S++){if(S){siz[S]=siz[S>>1]+(S&1);for(LL i=1;i<=m;i++)if(S&(1<<i-1)){pos=i;break;}Lcm[S]=min(lcm(Lcm[S^(1<<pos-1)],val[pos]),n+1);}M(Sum[S]=(P[siz[S]]*(n/Lcm[S]))%Mod);}Fwt(All+1);for(LL S=0;S<=All;S++)M(Ans+=Sum[S]);Ans=Ans*inv%Mod;cout<<Ans<<'\n';}
}int main(){n=read();m=read();for(LL i=1;i<=m;i++)val[i]=read();inv=Fpow(Fpow(2,m),Mod-2);Fast_Storm::Solve();return 0;
}

LOJ6356四色灯相关推荐

  1. LOJ6356 四色灯

    传送门 子任务1:m=1 直接算两遍选或不选就可以了 期望得分:10 子任务2:n<=1e4 m<=5 两种方法 一.枚举每一个数,看它被几个数整除,它对答案有贡献当且仅当被选4k次(k∈ ...

  2. 渔翁、魔鬼和四色鱼的故事

    渔翁和魔鬼 很久以前,有个上了岁数的渔翁,每天靠打鱼维持生活.老渔翁一家除了老婆之外,还有三个儿女,都靠他供养,因此家里很贫穷,生活困难.他虽然以打鱼为生,可是有个奇怪的习惯,每天只打四网鱼,从来不肯 ...

  3. DDD:用 “四色原型” 进行 “聚合设计”

    四色原型 在企业应用的上下文中,四色原型是领域模型的一种原型,原型的意思是指领域中的任何模型及其关系都可以抽象为"四色原型". 四色原型可以用这句话进行描述:某个人(Party)的 ...

  4. DDD领域驱动设计---战略设计(包括四色原型建模)

          相当于策略设计,从宏观角度着眼于领域的分析设计,属于系统分析阶段,注重如何从有界上下文中寻找领域模型,战略模式由有界上下文.无所不在的语言和上下文映射组成. 在战略设计前首先要了解下领域知 ...

  5. 四色原型图进行业务建模的思考

    一般的需求,我们利用用例图就可以表达清楚了,如果再复杂些,我们可能还得再配合序列图.状态图等加于说明.但是,在非常复杂的业务逻辑中,怎么样才能找出它们的联系?而且还能更好地拥抱OO(面向对象),OO的 ...

  6. 徐昊:运用四色建模法进行领域分析

    徐昊@ThoughtWorks 读完需要 6 分钟 速读仅需 2 分钟 1 前言 领域建模有很多种方法,对于同样的问题域使用不同的建模手段得到的模型可能也不尽相同.于是我经常听到这样一个问题: 怎么才 ...

  7. DDD:四色原型、DDD、DCI之间的关系

    PPT对应某个聚合. Des对应某个聚合或其它聚合内的实体或值对象. MI对应某个聚合. Role对应PPT(Data)在某个上下文(Context)执行某些交互(Interactive)的代理或装饰 ...

  8. windows怎么将图片变为单色图片_印刷丨单色黑与四色黑

    在打印店打印大面积黑色时你们是否遇见油墨太多沁湿纸张出现机器卡纸:印出的黑色没达到自己想要的那么黑:细看会看见其它色的叠印:那么你可能就是单色与四黑色没有选择正确. 什么是单色黑? 要理解什么是单色黑 ...

  9. 四色菊皇家大学 SiSaKet Rajabhat University (SSKRU)

    四色菊皇家大学 SiSaKet Rajabhat University (SSKRU) 四色菊皇家大学(泰语名称มหาวิทยาลัยราชภัฏศรีสะเกษ 英语名称Si Sa Ket Raja ...

最新文章

  1. php和python交互-PHP与Python进行数据交互
  2. 合肥将全力打造“城市超脑” 创建智慧城市典范
  3. 陶哲轩实分析习题17.1.2
  4. 2019最新 Java商城秒杀系统的设计与实战视频教程(SpringBoot版)
  5. android已经点击,【已解决】android中点击其他的(如Button等)但是EditText却没有失去焦点...
  6. 【收藏】C# WinForm开发系列 - DataGridView 使用方法集锦 - 宁波.Net技术讨论区
  7. 编程大师论道:PHP的魅力和不足何
  8. 运行Eclipse出现:a java runtime environment(JRE) or java development kit(JDK) must be....
  9. 开发者该如何利用 C# 加解密?
  10. 使用Asp.Net MVC开发兼职文章系统
  11. Unity3d基本优化条目
  12. JAVA 实现汉字五行笔画查询
  13. android TV 开发规范
  14. 快35了,还在“点点点”?那些入行几年的测试点工后来都怎么样了?
  15. Android切换APP前后台展示开屏广告
  16. vs2022 c#调用interop.word 12.0版本也就是word2007实现首行缩进两个字符
  17. Android手机总是提示:存储空间不足,解决方法
  18. ip地址、子网掩码、网段、子网划分
  19. Zotero使用指南04:群组功能
  20. 数码照片的文件高级信息获取

热门文章

  1. RequireJS和Backbone
  2. Mit Mini Cheetah开源代码开发环境搭建
  3. Linux下rm删除文件后,磁盘容量没有释放
  4. JAR、WAR、EAR的区别和使用
  5. hdu1412 set函数的第一次成功应用 超级水题
  6. Android端实现深度学习
  7. CISCO路由器配置基础(2)
  8. 四位半高精度电压表头原理图+PCB设计文件
  9. 部分机型进行运行时权限申请时不弹出授权弹框是什么情况?百分百弹出授权弹框,要不?
  10. 网络安全与网站安全及计算机安全:Kali Linux网络安全与主机扫描背后的“秘密”