CF926 Div.2
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的更多相关文章
- IE6/7下空div占用空间的问题
最近注意力没在前端上面,工作碰到这样一个问题,下意识的写了句 font-size:0;line-height:0;哪知道引发了更大的bug.后来插入数据进去的时候都不显示了..再后来百度一番找到,原来 ...
- div实现自适应高度的textarea,实现angular双向绑定
相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个. 过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row. 如果你也像我一样打算使用textarea,那么很抱歉,你一开始就 ...
- 冒泡,setinterval,背景图的div绑定事件,匿名函数问题
1.会冒泡到兄弟元素么? $(function(){ $("#a").click(function(){alert("a")}) $("#b" ...
- css居中div的几种常用方法
在开发过程中,很多需求需要我们居中一个div,比如html文档流当中的一块div,比如弹出层内容部分这种脱离了文档流等.不同的情况有不同的居中方式,接下来就分享下一下几种常用的居中方式. 1.text ...
- Div Vertical Menu ver5
这个小功能,如果是算此次,已经是第5次修改了.可以从这里看到前4次:V1, http://www.cnblogs.com/insus/archive/2011/10/17/2215637.html V ...
- 计算Div标签内Checkbox个数或已被disabled的个数
先看下面的html: 计算div内的checkbox个数:$('#divmod input[type="checkbox"]').length 计算div内checkbox被dis ...
- [jquery]显示隐藏div标签的几种方法
1.$("#demo").attr("style","display:none;");//隐藏div $("#demo" ...
- CSS3变形记(上):千变万化的Div
传统上,css就是用来对网页进行布局和渲染网页样式的.然而,css3的出现彻底打破了这一格局.了解过css3的人都知道,css3不但可以对网页进行布局和渲染样式,还可以绘制一些图形.对元素进行2D和3 ...
- 如何隐藏DIV对象
DIV对象在网页里面,相当于一个容器,在其内部,可以显示文字.图片.视频控件等等. 以下的教程,和大家一起来学习,如何隐藏DIV对象. 这必须使用CSS来控制,才能达到隐藏的目的,那么,就得使用CSS ...
- css实现div,文字水平居中的方案。
本文的目的为记录个人开发中常用的几种居中方案,以供大家参考. //basic css html, body { height: 100%; width: 100%; margin: 0; paddin ...
随机推荐
- 用Python实现阿拉伯数字转换成中国汉字
要将阿拉伯数字转换成中国汉字表示的数字,我们需要一个映射表来转换每个数字,并且处理不同位数的数字(如十.百.千.万等). 1. Python实现阿拉伯数字转换成中国汉字 下面是一个完整的Python代 ...
- 今日算法随笔:填充每个节点的下一个右侧节点指针 II
题目链接:117. 填充每个节点的下一个右侧节点指针 II 题目描述 给定一个二叉树,填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则将 next 指针设置为 ...
- JWT单点登录
单点登录 概念:登录某集团的某一产品之后,访问其他产品的网站时就会是登录状态,比如登录QQ之后,进入QQ游戏的时候就是登录过的状态,具体实现方法有以下: Redis+token实现单点登录: 生成一个 ...
- RxJS 系列 – Observable & Creation Operators
前言 RxJS 最大篇幅就是一堆的 operators, 但是那些概念并不多, 只要常用就能熟能生巧了. Observable 和 Subject 反而需要我们了解清楚. 所以这篇我们先来了解这 2 ...
- Servlet——执行流程、生命周期、方法介绍、体系结构
执行流程 生命周期 对象的生命周期是指一个对象从被创建到被销毁的整个过程 Servlet运行在Servlet容器(web服务器)中,其生命周期由容器管理,分为四个阶段: 1. 加载和实例 ...
- SuperMap iServer数据动态更新刷新地图与数据服务
更新:2022年6月27日 SuperMap iServer 11i 底层修改逻辑,增加智能指针.11i版本不需要以下操作即可实现 一.使用背景 有这么一个需求,后端也就通过SuperMap iDes ...
- EAS之WALT算法介绍
EAS调度器缘起 Linux内核的一直都使用完全公平调度器CFS(Completely Fair Scheduler)作为默认调度器,但是在使用中发现CFS如下几个问题. CFS主要是为了服务器性能优 ...
- 分析ueventd Coldboot耗时问题
安卓go平台启动时间发现如下ueventd耗时1.907s问题: 01-11 00:20:02.854 0 0 I init : Parsing file /odm/etc/init... 01-11 ...
- Linux内存管理2.6 -反向映射RMAP(最终版本)
所谓反向映射是相对于从虚拟地址到物理地址的映射,反向映射是从物理页面到虚拟地址空间VMA的反向映射. RMAP能否实现的基础是通过struct anon_vma.struct anon_vma_cha ...
- 云原生周刊:Kubernetes v1.28 正式发布 | 2023.8.21
开源项目推荐 kurt 一个 Kubernetes 插件,可提供 Kubernetes 集群中重启内容的上下文信息. Kubean Kubean 是一个基于 kubespray 的 Kubernete ...