bzoj千题计划266:bzoj4872: [六省联考2017]分手是祝愿
http://www.lydsy.com/JudgeOnline/problem.php?id=4872
一种最优解是 从大到小灯有亮的就灭掉
最优解是唯一的,且关灯的顺序没有影响
最优解 对每个开关至多操作1次,(连带着的灯的亮灭改变不算)
设最优解 需要操作cnt次,那么就有cnt盏灯是正确的选择
设 f[i] 表示 有i种正确的选择 变为 有i-1种正确的选择 的 期望次数
那么在n盏灯中,有i盏灯操作1次 就可以 减少一次正确选择
有n-i盏灯是错误的选择,选了它还要把它还原,还原它也是一种正确选择,就是f[i+1];一次错误的选择 做了一次 操作 就是1;当然也要变成i-1种正确选择
所以

边界:f[n]=1,随便选择任何一盏灯都是正确选择
#include<cstdio>
#include<vector>
using namespace std; #define N 100001 bool a[N]; vector<int>V[N]; int f[N],inv[N]; const int mod=; int main()
{
int n,k;
scanf("%d%d",&n,&k);
for(int i=;i<=n;++i) scanf("%d",&a[i]);
for(int i=;i<=n;++i)
for(int j=i;j<=n;j+=i)
V[j].push_back(i);
int cnt=,ans=;
for(int i=n;i;--i)
if(a[i])
{
cnt++;
int m=V[i].size();
for(int j=;j<m;++j) a[V[i][j]]^=;
}
if(cnt<=k) ans=cnt;
else
{
inv[]=;
for(int i=;i<n;++i) inv[i]=1LL*(mod-mod/i)*inv[mod%i]%mod;
f[n]=;
for(int i=n-;i;--i) f[i]=(+1LL*(n-i)*(+f[i+])*inv[i])%mod;
for(int i=cnt;i>k;--i) ans=(ans+f[i])%mod;
ans=(ans+k)%mod;
}
for(int i=;i<=n;++i) ans=1LL*ans*i%mod;
printf("%d",ans);
}
4872: [Shoi2017]分手是祝愿
Time Limit: 20 Sec Memory Limit: 512 MB
Submit: 466 Solved: 304
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
0 0 1 1
Sample Output
HINT
Source
bzoj千题计划266:bzoj4872: [六省联考2017]分手是祝愿的更多相关文章
- [BZOJ4872][六省联考2017]分手是祝愿(期望DP)
4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 516 Solved: 342[Submit][Statu ...
- [BZOJ4872][六省联考2017]分手是祝愿
BZOJ Luogu sol 首先发现肯定有解,又因为每个位置至多操作一次,所以最优解一定是在\([0,n]\)之间 有一种可以在\(O(\sum_{i=1}^{n}\lfloor\frac{n}{i ...
- BZOJ4872 [六省联考2017]分手是祝愿 【期望dp】
题目 Zeit und Raum trennen dich und mich. 时空将你我分开.B 君在玩一个游戏,这个游戏由 n 个灯和 n 个开关组成,给定这 n 个灯的初始状态,下标为 从 1 ...
- BZOJ 4872 luogu P3750 [六省联考2017]分手是祝愿
4872: [Shoi2017]分手是祝愿 Time Limit: 20 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description ...
- [bzoj4872] [洛谷P3750] [六省联考2017] 分手是祝愿
Description Zeit und Raum trennen dich und mich. 时空将你我分开. \(B\) 君在玩一个游戏,这个游戏由 \(n\) 个灯和 \(n\) 个开关组成, ...
- [bzoj 4872][六省联考2017]分手是祝愿
传送门 Description N个灯按照1~N标号,按下一个开关i,所有标号是i的约数的开关都改变状态,目标是关掉所有的灯,如果当前最优策略≤k就直接按照最优策略走.否则随机按下一个开关.给出每个灯 ...
- [六省联考2017]分手是祝愿 期望DP
表示每次看见期望的题就很懵逼... 但是这题感觉还是值得一做,有可借鉴之处 要是下面这段文字格式不一样的话(虽然好像的确不一样,我也不知道为什么,是直接从代码里面复制出来的,因为我一般都是习惯在代码里 ...
- P3750 [六省联考2017]分手是祝愿 期望DP
\(\color{#0066ff}{ 题目描述 }\) Zeit und Raum trennen dich und mich. 时空将你我分开. B 君在玩一个游戏,这个游戏由 \(n\) 个灯和 ...
- [六省联考2017]分手是祝愿——期望DP
原题戳这里 首先可以确定的是最优策略一定是从大到小开始,遇到亮的就关掉,因此我们可以\(O(nlogn)\)的预处理出初始局面需要的最小操作次数\(tot\). 然后容(hen)易(nan)发现即使加 ...
随机推荐
- .Net-C#异步程序知识点梳理
:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...
- rabbitMQ教程(四) spring整合rabbitMQ代码实例
一.开启rabbitMQ服务,导入MQ jar包和gson jar包(MQ默认的是jackson,但是效率不如Gson,所以我们用gson) 二.发送端配置,在spring配置文件中配置 <?x ...
- docker之Dokcerfile 常用指令
一.Docker语法 Docker语法: FROM 基础镜像base image RUN 执行命令 ADD 添加文件 COPY 拷贝文件 CMD 执行命令 EXPOSE 执行命令 WORKDIR 指定 ...
- centos7 php性能调优
php-ini优化 vi /etc/php.ini 打开php的安全模式,控制php执行危险函数, 默认是Off,改为On sql.safe_mode = Off 关闭php头部信息, 隐藏版本号, ...
- error: Build input file cannot be found: '*******/node_modules/react-native/Libraries/WebSocket/libfishhook.a' 问题解决记录
解决了刚才的'config.h' file not found问题,本以为就可以顺畅的跑起来,谁知道又被恶心到了,Build input file cannot be found!!! 问题: err ...
- Eclipse,代码中有错误,项目中却不显示红叉
***修改eclipse 代码提示级别1.单个项目修改项目上右键-->properties-->java compiler-->building-->enable projec ...
- 英语学习/词典App分析-团队作业(五)
英语学习/词典APP排行五排名: 1.网易有道词典(单词查询翻译类软件). 2.百词斩(单词记忆类软件). 3.沪江开心词场. 4.金山词霸. 5.流利说英语(英语口语APP). 个软件的分析: 1. ...
- Beta 冲刺 一
团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 照片 项目进展 岳冠宇 昨天的困难 无 今天的进度 ...
- Jmeter当获取正则表达式匹配数字为负数时获取所有匹配的值
需求说明:如果http的bodyData中有类似于{"idList":["6505","6506","2222".... ...
- [转帖]Mysql 最简单的参数调优配置
http://blog.jobbole.com/113659/ 我并不期望成为一个专家级的 DBA,但是,在我优化 MySQL 时,我推崇 80/20 原则,明确说就是通过简单的调整一些配置,你可以压 ...