记 \(f_i\) 是从要做 \(i\) 步好操作变成要做 \(i-1\) 步好操作的期望操作次数。
显然 \(f_i=i/n \times 1 + (1-i/n) \times (1 + f_{i+1}+f_i)\),即 \(f_i=(n+(n-i)f_{i+1})/i\)。\(f_n=1\)。
递推即可。

#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long ll;
int n, k, a[100005], f[100005], hmn, inv[100005], fac, ans;
const int mod=100003;
vector<int> vec[100005];
int main(){cin>>n>>k;f[n] = inv[0] = inv[1] = fac = 1;for(int i=1; i<=n; i++){scanf("%d", &a[i]);for(int j=i; j<=n; j+=i)vec[j].push_back(i);if(i!=1)    inv[i] = (ll)(mod - mod / i) * inv[mod%i] % mod;fac = (ll)fac * i % mod;}   for(int i=n; i>=1; i--)if(a[i]){hmn++;for(int j=0; j<vec[i].size(); j++)a[vec[i][j]] ^= 1;}if(hmn<=k)  cout<<(ll)hmn*fac%mod<<endl;else{for(int i=n-1; i>k; i--)f[i] = (ll)((ll)(n-i)*f[i+1]+n) * inv[i] % mod;for(int i=hmn; i>k; i--)ans = (ans + f[i]) % mod;ans = (ans + k) % mod;ans = ((ll)ans * fac) % mod;cout<<ans<<endl;}return 0;
}

转载于:https://www.cnblogs.com/poorpool/p/8571552.html

loj2145 「SHOI2017」分手是祝愿相关推荐

  1. LOJ#2145. 「SHOI2017」分手是祝愿

    LOJ#2145. 「SHOI2017」分手是祝愿 题目描述 Solution 首先有一个结论: 灯的状态序列a1,a2...ana_1,a_2...a_na1​,a2​...an​唯一对应了一个最优 ...

  2. loj#2143. 「SHOI2017」组合数问题

    loj#2143. 「SHOI2017」组合数问题 题目描述 Solution 考虑转化一下我们要求的东西. ∑i=0n(nkik+r)=∑i=0n(nki)[i≡r(modk)]\sum_{i=0} ...

  3. 4872: [Shoi2017]分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 153 Solved: 109 [Submit][Statu ...

  4. bzoj 4872 [Shoi2017]分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MB Submit: 138 Solved: 97 [Submit][Status ...

  5. BZOJ 4872 luogu P3750 [六省联考2017]分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MB [Submit][Status][Discuss] Description ...

  6. 2017 [六省联考] T5 分手是祝愿

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MB Submit: 458  Solved: 299 [Submit][Sta ...

  7. 你在「动森」里遇到的那些「丑动物」,后来怎么样了?

    那些被高价收购的网红动物,和那些被嫌弃赶走的小可怜 <集合啦!动物森友会>共有 383 位动物居民,但并不是每一只动物都深受玩家喜爱. 「怎么样才能让小动物主动提出搬家的请求?」 有玩家因 ...

  8. 从国企到互联网,一个六年程序员的「得」与「失」

    程序员,六年,四段工作经历,这也许是一份会被很多 HR 刷掉的简历. 从学生时代至今,我经历了两次大的方向转型和一次大的技术转型:从偏理论推导的数学学科到重工程实践的计算机学科:从「安稳固化」的国企到 ...

  9. 实习生风采 · 贰 | 张倬胜同学:攻关「孟子」轻量化预训练模型

    来源 | 澜舟科技 01 由游戏出发的计算机之路 大家好!我叫张倬胜,是上海交通大学20级博士研究生,去年3月来到澜舟科技实习,从事「孟子」预训练模型的技术研发及其在中文语言理解任务的应用. 性格读博 ...

最新文章

  1. 全了!从Python入门到精通
  2. NOIP2017 小凯的疑惑
  3. Android导入工程提示Invalid project description
  4. 电视剧中提到的 自然的 聊天对话 细节法则
  5. RTC时间在LCD上显示需注意的问题
  6. linux下安装php扩展模块gettext
  7. tutorial_coreos 01-01-install 2015-05-27
  8. MySQL-常用引擎
  9. 不断电系统的容量如何计算?
  10. 【Vue】全局过滤器和局部过滤器
  11. java 时间戳的获取方式
  12. file android closed,Reading a json file in Android [closed]
  13. TX2 摄像头CSI(一)
  14. JanusGraph学习笔记
  15. 开源阅读书源_【阅读】一款开源的强大的看书软件!amp;超多书源。
  16. 在layui表格中插入时间插件
  17. 如何制作一个简易的家庭记账系统
  18. 使用支付宝小程序input组件的坑
  19. 水经注CAD智能影像加载插件教程
  20. SD卡格式化|SD卡数据恢复技巧

热门文章

  1. MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
  2. python+selenium浏览器驱动(chrome,Firefox,IE)下载与封装
  3. LabVIEW 2015介绍
  4. 电脑每次关机都蓝屏怎么回事?
  5. 使命召唤14一直连接在线服务器,《使命召唤14》最新更新 连接问题得到解决
  6. 古北水镇上空的夜景,怎少的了S8的“夜视仪”?
  7. windows7原版镜像下载地址分享
  8. 二叉树 排序二叉树-可以通过中序遍历得到排序的数据 二叉排序树时间复杂度O(logn),...
  9. troff - groff 文档排版系统的 troff 处理器
  10. Android 悬浮窗语音识别功能开发详解