题目链接


分析

首先判断必须得按的键的个数,这个倒序枚举亮着的灯,然后设dp[i]dp[i]dp[i]表示有iii个正确选择并选择正确的期望操作次数,那么dp[i]=in+n−in(dp[i]+dp[i+1]+1)+1,dp[n+1]=0dp[i]=\frac{i}{n}+\frac{n-i}{n}(dp[i]+dp[i+1]+1)+1,dp[n+1]=0dp[i]=ni​+nn−i​(dp[i]+dp[i+1]+1)+1,dp[n+1]=0,若必须得按的键在kkk以内就不需要随机了,否则答案就是k+∑i=k+1cntdp[i]k+\sum_{i=k+1}^{cnt}dp[i]k+∑i=k+1cnt​dp[i]


代码

#include <cstdio>
#include <cctype>
#include <cmath>
#define rr register
using namespace std;
typedef long long ll;
const int mod=100003;
bool a[mod]; int n,k,cnt;
ll dp[mod],inv[mod];
inline signed iut(){rr int ans=0; rr char c=getchar();while (!isdigit(c)) c=getchar();while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();return ans;
}
signed main(){n=iut(); k=iut();for (rr int i=1;i<=n;++i) a[i]=iut();for (rr int i=n;i;--i)if (a[i]){++cnt; rr int t=sqrt(i);for (rr int j=1;j<=t;++j)if (i%j==0){a[j]^=1;if (j*j!=i) a[i/j]^=1; }}dp[n+1]=0; inv[1]=1;for (rr int i=2;i<=n;++i) inv[i]=(mod-mod/i)*inv[mod%i]%mod;for (rr int i=n;i;--i)dp[i]=((n-i)*dp[i+1]+n)*inv[i]%mod;rr ll ans=cnt;if (cnt>k){ans=k;for (rr int i=cnt;i>k;--i) ans=(ans+dp[i])%mod;}for (rr int i=1;i<=n;++i) ans=ans*i%mod;return !printf("%lld",ans);
}

#期望dp#洛谷 3750 分手是祝愿相关推荐

  1. 洛谷P3750 分手是祝愿 题解

    一道很经典的期望(((至少我感觉这个名字会流芳百世))).这道题我感觉是很神仙的期望 dpdpdp. 首先看如果操作第 iii 个开关时,所有编号为 iii 的约数(((包括 111 和 iii))) ...

  2. 树形DP 洛谷P1272 道路重建

    好久没有更新博客了 But!今天凌晨突然发现spli神竟然不可描述地......本dog受到上亿吨伤害,看来spli神是要向sdfzyhx学习啊!!! 于是今天又开始脑抽地写博客了. P1272 重建 ...

  3. #数位dp#洛谷 4317 花神的数论题

    感谢dalao@小粉兔的帮助 dalao's 博客园,dalao's 洛谷博客 题目 设f[i]f[i]f[i]表示iii转化为二进制后1的个数,求∏i=1nf[i]\prod_{i=1}^nf[i] ...

  4. [二维DP] 洛谷P1736 创意吃鱼法(预处理)

    题目 LP1736 思路 本题作为一道提高+/省选-的题,基本思路是自己想出来的,拿了90,然后有一个小bug一直没发现,拿来标程对比,改了这个bug然后AC,还是很开心的. 首先,借鉴最大正方形的经 ...

  5. 洛谷3750暨bzoj4872,分手是祝愿

    这是官方题解,写点感想. 1.这题妙不可言之处在将数据一般化,只提取出有用的期望步数 2.题解中关于如何从f[i]推出g[i]并没有证明,我给出的证明如下: 题解中说了当i>=ki>=k时 ...

  6. 尼克的任务 dp 洛谷1280

    蒟蒻表示老久没看过dp题目了,,挺水的一道dp题目都没想出来,,, 首先设dp[i]表示从开始到i时间的最大空闲时间,用vector to[x] 表示从x点开始的任务结束时间,cnt[x]表示从x开始 ...

  7. [状压dp]洛谷 P2157 学校食堂

    题目描述 小F 的学校在城市的一个偏僻角落,所有学生都只好在学校吃饭.学校有一个食堂,虽然简陋,但食堂大厨总能做出让同学们满意的菜肴.当然,不同的人口味也不一定相同,但每个人的口味都可以用一个非负整数 ...

  8. [状压dp] 洛谷 P1879 玉米田

    题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...

  9. [背包DP] 洛谷相关题目整理与练习(74题-)

    题目 以背包为标签,搜出了这么多题,按难度排序,一道一道做: (*):下面有提到 TODO 题目 难度 备忘录 AC 采药 普及- 01背包模板 AC 开心的金明 普及- 01背包模板 AC 小A点菜 ...

最新文章

  1. 《大道至简》第二章 读后感
  2. python parser count_8 个 Python 实用脚本,早掌握早下班!
  3. ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用
  4. 大于小于优化_架构 - 以MySQL为例,详解数据库索引原理及深度优化
  5. 【Day04】介绍防抖节流原理、区别以及应用,并用 JavaScript 进行实现
  6. C语言六叉树,递归创建二叉树c语言实现+详细解释
  7. Laravel 数据库配置
  8. 关于身份证OCR识别,你知道多少?
  9. c++ discards qualifiers
  10. Excel 合并当前工作簿全部工作表的VBA代码
  11. arp映射表查看与管理
  12. 网上图书商城项目学习笔记-018生成订单
  13. MacOS解压rar文件
  14. iOS必备小技巧(非常的全)
  15. php 变量 打字费劲,电脑自己打字停不下来
  16. vol.178 美西自驾历险记 · 完结篇(下)
  17. 将python代码做成exe文件
  18. 西门子ET200SP基座单元的区别与分类以及注意事项
  19. PHP对接 创蓝短信
  20. 风云编程python基础语法(8)|| 完结

热门文章

  1. flex java blazeds 注解_Flex+BlazeDS+Spring整合
  2. MyBatis进阶——高级使用1
  3. ATM柜员机人机界面
  4. android应用换肤功能,如何给Android应用更换皮肤
  5. SQL每日一题(20201030)QTY表示发货数量,MIN_QTY表示最小发货量
  6. 无线局域网如何设置更安全?
  7. 都9012年了,你还在手动部署代码吗
  8. 在9012年1月22日观【NOIP 2017】
  9. superset集成echarts,自定义图表开发
  10. springboot实现excel下载模板