NOIP|NOIP 模拟 八十五
T1 冲刺NOIP2021模拟18 莓良心
容易发现答案和每一个 \(w_i\) 无关,我们只需要求出总和然后计算方案数。
对于每一个数贡献的方案数是相同的,首先是自己的部分就是\(\begin{Bmatrix} n\\k\end{Bmatrix}\)。
然后考虑每个数和其他数在一组时都会额外有贡献,考虑将两个数捆绑那么答案是 \((n-1)\times\begin{Bmatrix} n-1\\k\end{Bmatrix}\)
计算只需要以上两个第二类斯特林数就可以完成。
\(\mathcal O(n^2)\) 的计算方式显然不能满足实现,我们需要容斥去求。
\(\begin{Bmatrix} n\\k\end{Bmatrix}=\frac{1}{k!}\times \sum \limits _{i=0}^{k}(-1)^i\times \begin{pmatrix} k\\i\end{pmatrix}\times (k-i)^n\)
后面的幂可以线性递推,复杂度\(\mathcal O(n)\)。
T2 冲刺NOIP2021模拟18 尽梨了
考虑两个商店满足\(a_1\times (b_2+1)>a_2\times(b_1+1)\),一定是第一个在前面。
首先根据以上要求排序,然后考虑 \(\mathcal O(n^2)\) 的 dp。设 \(dp_{i,j}\) 为考虑前 i 个,选了 j 个的最小时间。
转移只选要看当前点是否要去选择。
对于 a 不为 0,我们发现时间的增长是指数型的,于是第二维只有 log 级别。
然后考虑 加上 a 为0,此时我们二分,能塞多少塞多少。
然后得到答案。此题重在分析数据。
T3 冲刺NOIP2021模拟18 团不过
考虑求出先手必败的方案数,用总方案减去即可。
设 \(p_i\) 为\(2^n-1\) 的 i 次下降幂,这样总方案显然为 \(p_n\)。
设 \(f_i\) 为 i 堆石子先手必败的方案数。我们只需要根据前 i-1 的结果来调整即可。
【NOIP|NOIP 模拟 八十五】
\[f_i=p_{i-1}-f_{i-1}-f_{i-2}\times(i-1)\times(2^n-i+1) \]
这样递推是减去了前 i-1 为 0 这一位不可取 0,后者是任意 i-2 为 0 然后 这一位会和前面有相同。
T4 冲刺NOIP2021模拟18 七负我
根据调整法答案最大是把时间均分给最大的完全图。
我们只需要找出最大的完全图即可。
meet in middle 。前面 dp ,后面 并出边根据 dp 数组出答案。
推荐阅读
- 三门问题(蒙提霍尔悖论)分析与Golang模拟
- 投石机可连续抛射石头【Algodoo|投石机可连续抛射石头【Algodoo | 物理模拟】
- spring5源码系列--循环依赖|spring5源码系列--循环依赖 之 手写代码模拟spring循环依赖
- Code|Code Forces-681C(模拟题,优先队列,设计STL)
- jQuery之模拟实现$().animate()(上)
- 一个简单的TCP模拟实现(一)
- Injection|Injection For Xcode11 macOS 10.15 Catalina 亲测可用iOS模拟器UI界面调试实时刷新工具
- 康佳电视进入无线调试
- 【css灵感】模拟3D地球
- Python|Python socket 编程子模拟 HTTP GET 请求和响应