题目链接

  这题好喵啊……

  设f[i]是最少用i次才能全关上转移到最少用i-1次才能全关上灯的期望值,那么n个灯里有i个是正确的,剩下的都是不正确的

  因此期望是$f[i]=frac{n}{i}+frac{(n-i)*f[i+1]}{i}$

  然后我们把初始状态最少用多少次才能关掉求出来

  DP一遍,最后统计答案。

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<cstdlib>
#include<vector>
#define maxn 100020
#define mod 100003
using namespace std;
inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=num*+ch-'';
ch=getchar();
}
return num*f;
} vector<long long>s[maxn]; long long inv[maxn];
long long q[maxn];
long long f[maxn]; int main(){
long long n=read(),m=read();
inv[]=;
for(long long i=;i<=n;++i) inv[i]=(-mod/i*inv[mod%i]%mod+mod)%mod;
for(long long i=;i<=n;++i) q[i]=read();
for(long long i=;i<=n;++i)
for(long long j=i;j<=n;j+=i) s[j].push_back(i);
long long last=;
for(long long i=n;i>=;--i){
if(q[i]==) continue;
for(long long j=;j<s[i].size();++j) q[s[i][j]]^=;
last++;
}
f[n]=;
for(long long i=n-;i>m;--i) f[i]=(n*inv[i]%mod+((n-i)*f[i+]%mod)*inv[i]%mod)%mod;
for(long long i=;i<=m;++i) f[i]=;
long long ans=;
for(long long i=;i<=last;++i) ans=(ans+f[i])%mod;
for(long long i=;i<=n;++i) ans=(ans*i)%mod;
printf("%d\n",ans);
return ;
}

最新文章

  1. HTML5实现摇一摇
  2. .net using使用小结
  3. Linux平台Makefile文件的编写基础入门(课堂作业)
  4. UVa 106 - Fermat vs Pythagoras(数论题目)
  5. 2016北京PHP39期 ThinkPHP Discuz Dedecms 微信开发视频教程
  6. -ffunction-sections -Wl,--gc-sections
  7. MySQL基础学习之开始
  8. error: File not found by glob???
  9. 字符串最小表示法 O(n)算法
  10. 光谱郑匡移动互联网O2O完美融合
  11. 如何把域名解析到网站空间IP上?
  12. 怎样用div做三角形
  13. MongoDB基本命令总结
  14. K-Means算法:图片压缩
  15. Oracle EBS FORM 更改记录状态
  16. Centos安装Oracle及问题处理
  17. C#多线程和异步(一)——基本概念和使用方法
  18. 索引视图DEMO2
  19. Mac 重建 Spotlight 索引
  20. C++语言的学习环境

热门文章

  1. Mybatis-动态 SQL语句
  2. SyntaxHighlighter使用方法
  3. Oracle 数据库、实例、表空间、用户、数据库对象
  4. Vue源码学习二 ———— Vue原型对象包装
  5. 自己写一个Promise
  6. c++引用与指针的区别
  7. 【图论】[USACO]控制公司 Controlling Companies
  8. 安装并配置多实例Mysql数据库
  9. 基于 Generator 和 Iterator 的惰性列表
  10. Android Studio 安装与使用ADB wifi 无线调试