题解

很容易想出来最优策略是什么。

就是从n到1看到开着的灯就把它关了

我们预处理出当前状态把灯全部关闭后的最少步数cnt

然后我们的主人公就要瞎按。。。

设dp[i]代表当前状态最优解为i步时走到dp[i-1]用过步数的期望。

现在我们考虑如何转移到dp[i]

当我们这一步走到当前最优策略的一步时。

dp[i]=i/n*1

当我们这一步没有走到当前最优策略的一步时。

dp[i]=(n-i)/n*(dp[i+1]+1+dp[i])

所以 dp[i]=i/n+(n-i)/n*(dp[i+1]+1+dp[i])

化简一下 dp[i]=(n+(n-i)*dp[i+1])/i;

这样求出dp后答案就是dp[1]+dp[2]+...+dp[cnt]

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<vector>
using namespace std;
const long long N=;
const long long mod=;
vector<long long>vec[N];
long long n,k,inv[N],a[N],cnt,dp[N],ans;
long long read(){
long long sum=,f=;
char ch=getchar();
while(ch<''||ch>''){
if(f=='-')f=-;
ch=getchar();
}
while(ch<=''&&ch>=''){
sum=(sum<<)+(sum<<)+ch-'';
ch=getchar();
}
return sum;
}
int main(){
n=read();k=read();
// scanf("%d%d",&n,&k);
inv[]=;
for(long long i=;i<=n;i++){
inv[i]=-(mod/i)*inv[mod%i];
inv[i]=(inv[i]%mod+mod)%mod;
}
for(long long i=;i<=n;i++)
for(long long j=i;j<=n;j+=i){
vec[j].push_back(i);
}
for(long long i=;i<=n;i++){
// scanf("%d",&a[i]);
a[i]=read();
}
for(long long i=n;i>=;i--){
if(a[i]){
for(long long j=;j<=vec[i].size()-;j++){
a[vec[i][j]]^=;
}
cnt++;
}
}
dp[n]=;
for(long long i=n-;i>k;i--){
dp[i]=(n+(n-i)*dp[i+])%mod*inv[i]%mod;
}
for(long long i=k;i>=;i--)dp[i]=;
for(long long i=;i<=cnt;i++){
ans+=dp[i];
ans%=mod;
}
for(long long i=;i<=n;i++){
ans*=i;
ans%=mod;
}
printf("%lld",ans);
return ;
}

[六省联考2017]分手是祝愿(期望+DP)的更多相关文章

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

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

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

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

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

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

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

    原题戳这里 首先可以确定的是最优策略一定是从大到小开始,遇到亮的就关掉,因此我们可以\(O(nlogn)\)的预处理出初始局面需要的最小操作次数\(tot\). 然后容(hen)易(nan)发现即使加 ...

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

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

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

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

  7. [BZOJ4872][六省联考2017]分手是祝愿

    BZOJ Luogu sol 首先发现肯定有解,又因为每个位置至多操作一次,所以最优解一定是在\([0,n]\)之间 有一种可以在\(O(\sum_{i=1}^{n}\lfloor\frac{n}{i ...

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

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

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

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

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

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

随机推荐

  1. Build rpm example:zram

    rpmbuild #ll zram-1.0.0 total 32 -rw-r--r-- 1 root root 948 Aug 21 16:44 Makefile -rw-r--r-- 1 root ...

  2. SUSE Linux Enterprise 11 SP4系统安装过程 字符界面

    首先开启虚拟机之后显示这个界面: (1) 进入之后显示下面界面,点击Installation安装. (2)进入Welcome界面,选择语言,默认Einglish(US)不需要改动:点击I Agree ...

  3. Windows 10快速在指定目录打开命令行

    一.我们在想要到达的目录上按住shift键并点击鼠标右键.看到了吗,这时候在弹出菜单里多了一个选项,就是"在此处打开命令窗口",我们点开看一下. 二.不过有时候我们需要以管理员的权 ...

  4. 鸟哥的linux私房菜

    http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php

  5. 一种神奇的双向循环链表C语言实现

    最近在看ucore操作系统的实验指导.里面提要一个双向循环链表的数据结构,挺有意思的. 其实这个数据结构本身并不复杂.在普通链表的基础上加一个前向指针,我们就得到了双向链表,再把头尾节点连起来就是双向 ...

  6. Javascript的jsonp原理

    Javascript的jsonp原理   首先JSON是一种基于文本的数据交换方式,或者叫做数据描述格式 当一个网页在请求JavaScript文件时则不受是否跨域的影响,凡是拥有”src”这个属性的标 ...

  7. UVALive 3231 Fair Share

    Fair Share Time Limit: 3000ms Memory Limit: 131072KB This problem will be judged on UVALive. Origina ...

  8. (hdu step 7.1.6)最大三角形(凸包的应用——在n个点中找到3个点,它们所形成的三角形面积最大)

    题目: 最大三角形 Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  9. extjs动态导入

    Ext.Loader.setConfig({enabled: true}); Ext.Loader.setPath("util", "../wx/jsUtil" ...

  10. Mosquito的优化——epoll优化(七)

    本文由逍遥子撰写,转发请标注原址: http://blog.csdn.net/houjixin/article/details/46413583 或 http://houjixin.blog.163. ...