【LOJ 2145】「SHOI2017」分手是祝愿
LOJ 2145 100pts
这题。。。BT啊
首先我们很容易想出\(dp(msk)\)表示现在灯开关的情况是\(msk\),期望通过多少步走到终结态。
很明显\(dp(msk)=\frac{1}{n} \times \sum_{i=1}^n dp(msk\ xor\ M_i)\)。
其中\(M_i\)表示把\(i\)这个灯按下之后会改变哪些灯的状态。
然后发现这个转移是有环的。。。所以高斯消元。
然后很开心地发现这个复杂度是\(O(2^3n)\)的,
所以看看是不是可以合并某些状态。
观察得如果两个\(msk\)达到终结态需要的最少按的次数是相同的,那么他们的\(dp\)值也是相同的。
所以考虑改变状态为\(dp(i)\)表示最少要开关多少次灯来把当前状态变成终结态时期望的步数。
观察得转移是\(dp(i)=\frac{i}{n}dp(i-1)+\frac{n-i}{n}dp(i+1)+1\)。
很遗憾这个还是有环的。。。所以高斯消元。
这个复杂度就是\(O(n^3)\)的了,可以拿\(60pts\)(因为最后乘\(n!\)会爆炸)。
根据定义\(dp(n)=dp(n-1)+1\)。
那么我们看看\(dp(n-1)=???\)
根据定义\(dp(n-1)=\frac{n-1}{n}dp(n-2)+\frac{1}{n}dp(n)+1\)
\(=\frac{n-1}{n}dp(n-2)+\frac{1}{n}dp(n-1)+\frac{1}{n}+1\)
所以\(\frac{n-1}{n}dp(n-1)=\frac{n-1}{n}dp(n-2)+\frac{1}{n}+1\)
所以\(dp(n-1)=dp(n-2)+\frac{n+1}{n-1}\)。
那么我们可以假设\(dp(i)=dp(i-1)+c(i)\)。
那么根据定义\(dp(i)=\frac{i}{n}dp(i-1)+\frac{n-i}{n}dp(i+1)+1\),
\(=\frac{i}{n}dp(i-1)+\frac{n-i}{n}(dp(i)+c(i+1))+1\),
所以\(\frac{i}{n}dp(i)=\frac{i}{n}dp(i-1)+\frac{n-i}{n}c(i+1)+1\),
简化得\(dp(i)=dp(i-1)+\frac{(n-i)c(i+1)+n}{i}\)。
所以\(c(i)=\frac{(n-i)c(i+1)+n}{i}\)。
做完了。。。
【LOJ 2145】「SHOI2017」分手是祝愿的更多相关文章
- LOJ #2145. 「SHOI2017」分手是祝愿
题目链接 LOJ #2145 题解 一道画风正常的--期望DP? 首先考虑如何以最小步数熄灭所有灯:贪心地从大到小枚举灯,如果它亮着则修改它.可以求出总的最小步数,设为\(cnt\). 然后开始期望D ...
- loj2145 「SHOI2017」分手是祝愿
记 \(f_i\) 是从要做 \(i\) 步好操作变成要做 \(i-1\) 步好操作的期望操作次数. 显然 \(f_i=i/n \times 1 + (1-i/n) \times (1 + f_{i+ ...
- loj #2143. 「SHOI2017」组合数问题
#2143. 「SHOI2017」组合数问题 题目描述 组合数 Cnm\mathrm{C}_n^mCnm 表示的是从 nnn 个互不相同的物品中选出 mmm 个物品的方案数.举个例子, 从 ...
- LOJ #2141. 「SHOI2017」期末考试
题目链接 LOJ #2141 题解 据说这道题可以三分(甚至二分)? 反正我是枚举的 = = 先将t和b数组排序后计算出前缀和, 然后枚举最晚的出成绩时间,每次可以O(1)直接计算调整到该时间所需的代 ...
- LOJ #2142. 「SHOI2017」相逢是问候(欧拉函数 + 线段树)
题意 给出一个长度为 \(n\) 的序列 \(\{a_i\}\) 以及一个数 \(p\) ,现在有 \(m\) 次操作,每次操作将 \([l, r]\) 区间内的 \(a_i\) 变成 \(c^{a_ ...
- Loj #2192. 「SHOI2014」概率充电器
Loj #2192. 「SHOI2014」概率充电器 题目描述 著名的电子产品品牌 SHOI 刚刚发布了引领世界潮流的下一代电子产品--概率充电器: 「采用全新纳米级加工技术,实现元件与导线能否通电完 ...
- Loj #3096. 「SNOI2019」数论
Loj #3096. 「SNOI2019」数论 题目描述 给出正整数 \(P, Q, T\),大小为 \(n\) 的整数集 \(A\) 和大小为 \(m\) 的整数集 \(B\),请你求出: \[ \ ...
- Loj #3093. 「BJOI2019」光线
Loj #3093. 「BJOI2019」光线 题目描述 当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收. 设对于任意 \(x\),有 \(x\t ...
- Loj #3089. 「BJOI2019」奥术神杖
Loj #3089. 「BJOI2019」奥术神杖 题目描述 Bezorath 大陆抵抗地灾军团入侵的战争进入了僵持的阶段,世世代代生活在 Bezorath 这片大陆的精灵们开始寻找远古时代诸神遗留的 ...
随机推荐
- 一文读懂机器学习大杀器XGBoost原理
http://blog.itpub.net/31542119/viewspace-2199549/ XGBoost是boosting算法的其中一种.Boosting算法的思想是将许多弱分类器集成在一起 ...
- html之input标签(11)
1.输入框 type=“text” 就是一个简单的输入框 <body> <input type="text"> </body> 2.密码输入框 ...
- 2 >&1 的准确含义
1. 2代表标准错误,2 > 表示重定向,就是把标准错误重定向到 1中,这个1如果想表示标准输出的话,就必须在前面加 & 2. 正常情况下,下面这个会有很多错误信息,但是加上2>& ...
- Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
脚本开发-利用loadrunner开发Windows Sockets协议脚本 by:授客 QQ:1033553122 欢迎加入软件性能测试交流QQ群:7156436 实践举例 Socket服务端简单实 ...
- Glide图片加载框架小bug
如上一段加载图片的代码,本身是没问题的,后来测试发现有情况不显示url对应的图片,而一直显示加载超时的图片 修改如下: 将with()方法的上下文context改为图片的imageView.getCo ...
- Python 爬虫实例(爬百度百科词条)
爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成.爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入 ...
- coTurn测试程序之turnutils_stunclient.exe
测试使用方法,作为STUN客户端,仅用于测试STUN服务是否正常运行. 使用coTurn服务启动STUN/TURN服务后,执行以下命令即可: turnutils_stunclient -p 61.18 ...
- Windows Server2008 R2安装wampserver缺少api-ms-win-crt-runtime-l1-1-0.dll解决方案
安装wampserver经常会遇到缺少各种dll文件的问题,可以在安装之前先安装一下微软运行库合集,但此时仍有可能缺少api-ms-win-crt-runtime-l1-1-0.dll文件,那么可以尝 ...
- LeetCode算法题-Word Pattern(Java实现)
这是悦乐书的第202次更新,第212篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第68题(顺位题号是290).给定一个模式和一个字符串str,找到str是否完全匹配该模 ...
- python3编写网络爬虫14-动态渲染页面爬取
一.动态渲染页面爬取 上节课我们了解了Ajax分析和抓取方式,这其实也是JavaScript动态渲染页面的一种情形,通过直接分析Ajax,借助requests和urllib实现数据爬取 但是javaS ...