C. Sasha and the Casino

赌场规则:如果下注 \(y(y > 0)\) 元,如果赢了则除了 \(y\) 元外,额外获得 \(y \times (k - 1)\) 元,否则则输掉 \(y\) 元;

并且你不能连续输超过 \(x\) 次

最初,你有 \(a\) 枚硬币,询问是否能够赢取任意数量的硬币

题解:思维

考虑这样一种策略:假设前面一直输,保证如果当前的这局赢了,盈利将超过亏损的钱,这种叫做倍投法,这样一旦赢了,我们重新从 \(1\) 开始下注

那么我们只需要暴力跑 \(x + 1\) 次即可

注意会爆 long long

D. Sasha and a Walk in the City

题解:树形 DP

定义 \(dp[i][0/1/2]\) 代表以 \(i\) 为根的子树中,从任意叶子出发到 \(i\) 的路径中有 \(0/1/2\) 个危险节点

\[dp[i][0] = 1 \\
dp[i][1] = \prod_{j} (dp[j][0] + dp[j][1])\\
dp[i][2] = \sum_j (dp[j][1] + dp[j][2])
\]

E. Sasha and the Happy Tree Cutting

题解:状压 DP + 虚树思想

关键路径数量 \(k \leq 20\) 提醒我们状压

我们对于每条边 \(i\) 求出有哪些关键路径经过 \(i\),定义其为 \(S_i\)

定义 \(dp[i][mask]\) 代表在前 \(i - 1\) 条边中涂色,使得有哪些关键路径被覆盖的状态为 \(mask\)

那么转移很简单:\(dp[i + 1][mask\ | \ S_i] = \min(dp[i + 1][mask\ | \ S_i], dp[i][mask] + 1)\)

\(dp[i + 1][mask] = min(dp[i + 1][mask], dp[i][mask])\)

但是现在复杂度为 \(O(n2^k)\),但是观察后我们发现实际上只有 \(O(k)\) 种 \(S_i\),因为我们对 \(2k\) 个关键点建虚树,虚树上的边数就是 \(S_i\) 不同的边数,即 \(O(k)\)

所以我们直接 \(O(nk)\) 处理 \(S_i\) ,然后排序后去重

然后 \(O(k2^k)\) 状压即可

注意滚动优化空间

F. Sasha and the Wedding Binary Search Tree

题解:隔板法 + 二叉树的遍历

考虑到二叉树的中序遍历是有序的

那么我们就很多线段,并且我们也得到了每条线段中数的范围 \([l, r]\)

那么对于每条线段来说,就转化为:长度为 \(x\) 的线段,其中每个数范围在 \([l, r]\),要求使得线段中的数不递减的方案数

这是一个经典的组合数问题:我们考虑将线段中每个数看成小球,然后数的范围看成盒子,也就是 \(x\) 个相同的小球,放入 \(r - l + 1\) 个不同的盒子中,允许盒子为空的方案数,显然隔板法,即 \(C_{r - l + x}^{r - l}\)

但是 \(r - l\) 太大了,无法预处理,我们考虑换个形式 \(C_{r - l + x}^{r - l} = C_{r - l + x}^x\),我们考虑暴力计算,因为 \(\sum x = O(n)\) ,所以可以暴力

最后将每条线段的方案数的乘积作为答案即可

CF926 Div.2的更多相关文章

  1. IE6/7下空div占用空间的问题

    最近注意力没在前端上面,工作碰到这样一个问题,下意识的写了句 font-size:0;line-height:0;哪知道引发了更大的bug.后来插入数据进去的时候都不显示了..再后来百度一番找到,原来 ...

  2. div实现自适应高度的textarea,实现angular双向绑定

    相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个. 过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row. 如果你也像我一样打算使用textarea,那么很抱歉,你一开始就 ...

  3. 冒泡,setinterval,背景图的div绑定事件,匿名函数问题

    1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...

  4. css居中div的几种常用方法

    在开发过程中,很多需求需要我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等.不同的情况有不同的居中方式,接下来就分享下一下几种常用的居中方式. 1.text ...

  5. Div Vertical Menu ver5

    这个小功能,如果是算此次,已经是第5次修改了.可以从这里看到前4次:V1, http://www.cnblogs.com/insus/archive/2011/10/17/2215637.html V ...

  6. 计算Div标签内Checkbox个数或已被disabled的个数

    先看下面的html: 计算div内的checkbox个数:$('#divmod input[type="checkbox"]').length 计算div内checkbox被dis ...

  7. [jquery]显示隐藏div标签的几种方法

    1.$("#demo").attr("style","display:none;");//隐藏div $("#demo" ...

  8. CSS3变形记(上):千变万化的Div

    传统上,css就是用来对网页进行布局和渲染网页样式的.然而,css3的出现彻底打破了这一格局.了解过css3的人都知道,css3不但可以对网页进行布局和渲染样式,还可以绘制一些图形.对元素进行2D和3 ...

  9. 如何隐藏DIV对象

    DIV对象在网页里面,相当于一个容器,在其内部,可以显示文字.图片.视频控件等等. 以下的教程,和大家一起来学习,如何隐藏DIV对象. 这必须使用CSS来控制,才能达到隐藏的目的,那么,就得使用CSS ...

  10. css实现div,文字水平居中的方案。

    本文的目的为记录个人开发中常用的几种居中方案,以供大家参考. //basic css html, body { height: 100%; width: 100%; margin: 0; paddin ...

随机推荐

  1. 6.13API接口服务类漏洞探针

    ip地址解析:www.x.x.x.com, 对应网站目录为d:/wwwroot/xiaodi/ 而127.x.x.x,对应网站目录为d:/wwwroot/,可能存在网站备份文件zip,所以ip网址端口 ...

  2. 痞子衡嵌入式:在MDK开发环境下自定义安装与切换不同编译器版本的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在MDK开发环境下自定义安装与切换不同编译器版本的方法. Keil MDK 想必是嵌入式开发者最熟悉的工具之一了,自 2005 年 Ar ...

  3. JS处理html的编码(encode)与解码(decode)

    一.用浏览器内部转换器实现转换 代码: var HtmlUtil = { // 1.用浏览器内部转换器实现html编码 htmlEncode: function(html) { // 创建一个元素容器 ...

  4. Python网页应用开发神器Dash 2.18.1稳定版本来啦

    本文示例代码已上传至我的Github仓库:https://github.com/CNFeffery/dash-master Gitee同步仓库地址:https://gitee.com/cnfeffer ...

  5. Azure – 对比 AWS Research Report

    前言 最近有机会接触了一下 AWS, 在对比完之后决定继续用 Azure, 这里小小记入一下. VM & SQL Server Azure 和 AWS 都可以选择 2 in 1, 或者 Web ...

  6. [OI] 莫比乌斯函数与莫比乌斯反演

    9. 莫比乌斯函数与莫比乌斯反演 9.1 莫比乌斯函数 9.1.1 定义 设 \(\mu\) 为莫比乌斯函数,则有: \[\mu(x)=\begin{cases}1\qquad (n=1)\\ 0\q ...

  7. [OI] 平衡树

    1. 二叉查找树 二叉查找树的思想和优先队列比较像,都是把若干个数据按一定规则插到一棵树里,然后就可以维护特定的信息. 在优先队列的大根堆实现里,我们让每棵子树的根节点都大于它的儿子,这样就可以保证根 ...

  8. [namespace hdk] 向量 direct_vector

    我忏悔我有罪我心情又不好了不知道干什么所以又不小心封了个东西啊啊啊啊啊啊啊啊 功能 已重载 [] 运算符(左值) 已重载 = 运算符(可使用向量或 std:::vector) 已重载 + += - - ...

  9. argmax经过sigmoid和不经过sigmoid区别

    起因 今天和同组讨论了一下网络输出时,在torch.argmax之前经过torch.sigmoid和不经过sigmoid的区别. 主要起因是实验结果图像不同 图1 不经过sigmoid 图2 经过si ...

  10. MongoDB安装及配置Navicat MongoDB Tools

    一.下载MongoDB 1.下载网址:https://www.mongodb.com/try/download/community 注:本文档以Windows和msi安装为例 二.安装MongoDB ...