BZOJ

Luogu

sol

首先发现肯定有解,又因为每个位置至多操作一次,所以最优解一定是在\([0,n]\)之间

有一种可以在\(O(\sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor)\)复杂度求最优解的方法。

只要枚举这个数的倍数判断被操作了几次就行了。

如果最优步数小于等于k直接输出最优步数\(*n!\)

否则,我们设\(f_i\)表示当前最优步数是\(i\)时的期望完成步数

考虑到这时所有位置已经没有区别了(只有需要操作的和不需要操作的两种,没有顺序区别),所以这个状态是成立的

那么

\[f_i=\frac{i}{n}f_{i-1}+\frac{n-i}{n}f_{i+1}+1
\]

方程显然有解,然而直接高斯消元\(O(n^3)\)?

考虑把\(f_i\)差分,记为\(g_i\),那么上式就变成了

\[\sum_{x=1}^{i}g_x=\frac{i}{n}\sum_{x=1}^{i-1}g_x+\frac{n-i}{n}\sum_{x=1}^{i+1}g_x+1
\]

化简

\[g_i=\frac{n-i}{n}(g_i+g_{i+1})+1
\]

so

\[g_i=\frac{(n-i)g_{i+1}+n}{i}
\]

逆元线性推得

code

#include<cstdio>
#include<algorithm>
using namespace std;
const int mod = 100003;
int gi()
{
int x=0,w=1;char ch=getchar();
while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
if (ch=='-') w=0,ch=getchar();
while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
return w?x:-x;
}
int n,jc=1,k,a[mod],opt[mod],best,inv[mod],f[mod],ans;
int main()
{
n=gi();k=gi();
for (int i=1;i<=n;++i) a[i]=gi(),jc=1ll*jc*i%mod;
for (int i=n;i;--i)
{
int p=a[i];
for (int j=i+i;j<=n;j+=i) p^=opt[j];
if (p) opt[i]=1,++best;
}
if (best<=k) return printf("%lld\n",1ll*best*jc%mod),0;
inv[1]=f[n]=1;
for (int i=2;i<=n;++i) inv[i]=(mod-1ll*(mod/i)*inv[mod%i]%mod)%mod;
for (int i=n-1;i>k;--i) f[i]=(1ll*(n-i)*f[i+1]%mod+n)%mod*inv[i]%mod;
for (int i=1;i<=best;i++) ans+=i<=k?1:f[i];
return printf("%lld\n",1ll*ans*jc%mod),0;
}

[BZOJ4872][六省联考2017]分手是祝愿的更多相关文章

  1. [BZOJ4872][六省联考2017]分手是祝愿(期望DP)

    4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 516  Solved: 342[Submit][Statu ...

  2. bzoj千题计划266:bzoj4872: [六省联考2017]分手是祝愿

    http://www.lydsy.com/JudgeOnline/problem.php?id=4872 一种最优解是 从大到小灯有亮的就灭掉 最优解是唯一的,且关灯的顺序没有影响 最优解 对每个开关 ...

  3. BZOJ4872 [六省联考2017]分手是祝愿 【期望dp】

    题目 Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n 个灯和 n 个开关组成,给定这 n 个灯的初始状态,下标为 从 1 ...

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

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

  5. [bzoj4872] [洛谷P3750] [六省联考2017] 分手是祝愿

    Description Zeit und Raum trennen dich und mich. 时空将你我分开. \(B\) 君在玩一个游戏,这个游戏由 \(n\) 个灯和 \(n\) 个开关组成, ...

  6. luoguP3750 [六省联考2017]分手是祝愿 概率期望DP + 贪心

    ...........真的神状态了,没办法去想的状态................... 考试的时候选择$50$分贪心+$15$分状压吧,别的点就放弃算了........ 令$f[i]$表示从最小步 ...

  7. [六省联考2017]分手是祝愿 期望DP

    表示每次看见期望的题就很懵逼... 但是这题感觉还是值得一做,有可借鉴之处 要是下面这段文字格式不一样的话(虽然好像的确不一样,我也不知道为什么,是直接从代码里面复制出来的,因为我一般都是习惯在代码里 ...

  8. P3750 [六省联考2017]分手是祝愿 期望DP

    \(\color{#0066ff}{ 题目描述 }\) Zeit und Raum trennen dich und mich. 时空将你我分开. B 君在玩一个游戏,这个游戏由 \(n\) 个灯和 ...

  9. 洛谷P3750 [六省联考2017]分手是祝愿(期望dp)

    传送门 嗯……概率期望这东西太神了…… 先考虑一下最佳方案,肯定是从大到小亮的就灭(这个仔细想一想应该就能发现) 那么直接一遍枚举就能$O(nlogn)$把这个东西给搞出来 然后考虑期望dp,设$f[ ...

随机推荐

  1. laravel服务容器-----深入理解控制反转(IoC)和依赖注入(DI)

    首先大家想一想什么是容器,字面意思就是盛放东西的东西,常见的变量,对象属性都是容器,一个容器能够装什么东西,完全在于你对这个容器的定义.有的容器不仅仅只是存文本,变量,而是对象,属性,那么我们通过这种 ...

  2. Ios App上传步骤

    前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...

  3. NSData 与 NSString 的转化

    1 NSString * str = @"hello, world!"; 2 NSData * data = [str dataUsingEncoding:NSUTF8String ...

  4. Java经典编程题50道之二

    判断101-200之间有多少个素数,并输出所有素数. public class Example02 {    public static void main(String[] args) {      ...

  5. LVS-DR之VIP、DIP跨网段实例

    在日常应用环境中,我们会遇到这样一种lvs部署环境,所有的dr以及的rs server都在一个局域网环境中,但只有一个公网ip,而又需要将应用发布到internet上,都知道lvs的最好的模式就是所有 ...

  6. 在JDBC中使用Java8的日期LocalDate、LocalDateTime

    在实体Entity里面,可以使用java.sql.Date.java.sql.Timestamp.java.util.Date来映射到数据库的date.timestamp.datetime等字段 但是 ...

  7. HttpURLConnection 411错误解决

    1.问题描述 Java HttpURLConnection类发送Http请求链接外网返回ResponseCode为411,对方为.NET服务器,网上查明原因可能来自以下: 1.可能是没有传http中的 ...

  8. vue项目中对axios的二次封装

    近来在使用vue重构公司m站时,使用了axios来进行数据的请求,由于项目的需要,对axios进行了二次封装,点击进入axios //引入axios import axios from 'axios' ...

  9. 4.1 PCIe总线的基础知识

    与PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端.PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通 ...

  10. 利用 xrandr 命令修改屏幕分辨率

    问题背景 电脑外接着一个 23' 的显示器,分辨率为 1920*1080. 操作系统:ubuntu 14.04 今天,通过 Setting->Displays 中选择外接屏的分辨率时,发现最大只 ...