首页 > 其他分享 >7/17dp复健

7/17dp复健

时间:2023-07-19 14:24:52浏览次数:46  
标签:复健 le 17dp times nx ny 块钱 binom

7/17

Valid Bitonic Permutations

题意:

构建一个以 \(k (2 \le k \le n-1)\) 为峰值的单峰序列 \(a\) ,使得在 \(i,j\) 位置上的数为 \(x,y\),问在模 \(10^{9}+7\)下有多少种序列。多测

\(t,n \le 100\)

设 \(x,y\) 为两个特定值的位置, \(nx,ny\) 为两个特定的值。

枚举峰值可能在哪里,设此时在 \(i\),同时因分讨 \(nx,ny\) 哪个较大。

$ nx > ny : $

$ i < x : \binom{x-i-1}{n-nx-1} \times \binom{y-x-1}{nx-ny-1} \times \binom{n-y}{ny-1}$

$ x < i < y : \binom{i-x-1}{n-nx-1} \times \binom{y-i-1-((n-nx-1)-(i-x-1))}{nx-ny-1} \times \binom{n-y}{ny-1}$

$ nx < ny : $

$ y < i : \binom{i-y-1}{n-ny-1} \times \binom{y-x-1}{ny-nx-1} \times \binom{x-1}{nx-1} $

$ x < i < y : \binom{y-i-1}{n-ny-1} \times \binom{i-x-1-((n-ny-1)-(y-i-1))}{ny-nx-1} \times \binom{x-1}{nx-1} $

然后特判一下两个值为 \(n\) 的情况以及两个值为 \(n\) 但是在首尾的情况即可。

Two Chess Pieces

题意:

给定一个 \(n\) 个点的树,一开始在根节点\(1\) 有一个黑棋和白棋,每次可以选择一个点移动一条边,给定黑点和白点分别一定要经过(没有顺序)的点,给定一个限制 \(k\) ,使得两个在任何时刻距离不能超过 \(k\),最后都要返回根节点,问最小操作数是多少。

\(n,k \le 2 \times 10^{5}\)

可以想到,每个棋最多经过一条边\(2\)次,那么我们把边下压到点上,判断对于黑棋和白棋,每个节点是佛需要经过。

要经过一个点,当且仅当两种情况:

1.在当前子树内,有相同颜色需要到达的点。

2.在当前子树内,两种颜色最深需要到达的节点深度差 $ > k-1$

那么用 $ dfs $ 查一下就行,没有一个需要经过的点 \(ans+=2\)。

Chain Chips

题意:

给定 \(n\) 个点有边权的链,每个点上初始有一辆车,可以将车移动,有 \(m\)次询问,每次修改一条边的边权并求最小的代价使得最后每辆车都不在初始点上且每个点上恰好有一辆车。

\(n,q \le 2 \times 10^{5}\)

\(a_{i} \le 10^{9}\)

对于一个区间,如果相互交换,对于每条边,可以做到被经过的次数少于等于两次,而不可能为一次(两边数量要相同),那么只有可能被经过两次或零次,那么我们可以将有没有被经过化为被不被选中,那么只要满足相邻两条边至少要选中一条(不然这个点就动不了了)即可,就变成了最小覆盖问题。

设$ f_{i0}\(为到当前边且当前边不选的最小值,\)f_{i1}$为到当前边且当前边选的最小值。可得转移方程:
\(f_{i,0}=f_{i-1,1}\)
\(f_{i,1}=min(f_{i-1,0},f_{i-1,1})+a[i]\)

而又有修改,想到动态 \(DP\) ,将转移方程变成\(\begin{bmatrix} \infty & a[i] \\ 0 & a[i] \end{bmatrix}\)在线段树上维护即可。

Roulette

题意:

小 \(A\) 在进行赌博,一开始他有 \(n\)块钱,第 \(i\) 局小 \(A\) 先投注 \(a_{i}\) 块钱,如果他赢了就拿回 \(2\times a_{i}\) 块钱,输了就拿不回来,每次赢的几率为 $\frac{1}{2} $。

\(a_{1}=1\) ,如果第 \(i-1\) 局赢了,那么 \(a_{i}=1\) ,如果第 \(i-1\) 局输了,那么 \(a_{i}=2 \times a_{i-1}\)。当小A赚了 \(m\)块钱或他付不起\(a_{i}\),那么小\(A\)收手。问在模 \(998244353\) 下他赚了 \(m\)块钱的概率。

\(n,m \le 10^{9}\)

可以想到,他下注的钱数为$ 2^{0} + 2^{1} + 2^{2} + 2^{3} + 2^{4} ... $,如果在他下注\(2^{i}\)块钱时,他会得到\(2^{i+1}\)块钱,那么与初始相比,他一共赚了 \(1\)块钱,也就是说,我们可以将这么输输输输输输输赢的一个步骤为一轮,一轮有 \(i\) 个回合,也就是说一共有 \(m\) 轮,我们要求经过 \(m\) 轮后他还没死的概率。

对于一轮,我们可以正难则反,求他这一轮的 \(i\) 个回合全部输的概率,用\(1\) 减去这个数就是这一轮赢得一块钱的概率,那么我们只要将所有轮赢得一块钱而不中道崩殂的概率乘起来就行。

然而 \(m \le 10^{9}\),但是我们发现,当一轮的回合数相同时,赢的概率都为 \(1 - \frac{1}{2^{i}}\),那么我们只要对 \((2^{i}-1,2^{i+1}-1]\) 分块求值就行,时间为 \(log(m)\)。注意收尾的区间。

标签:复健,le,17dp,times,nx,ny,块钱,binom
From: https://www.cnblogs.com/shihoghmean/p/17565434.html

相关文章

  • 复健记录
    CF1394DBoboniuandJianghu*2800Tag:dp提交记录:Submission#212971850树上链相关组合优化自然考虑dp,影响子树对父亲的贡献的唯一因素在于\((u,fa_u)\)向上还是向下,考虑将其放入状态里,设\(f_{u,0/1}\)表示以\(u\)为根的子树,\((u,fa_u)\)向上/向下时子树内的\(\sum......
  • [蓝桥杯 2019 省 A] 修改数组 ———并查集练习(大学复健)
    本题拿到第一反应桶排序思想似乎可以水过,但是很明显出问题了。#include<bits/stdc++.h>usingnamespacestd;intN;inlineintkd(){ intx=0,f=1;charch=getchar......
  • SPAF(虽然已经死了)判断负环—(大学复健第二篇)
    SPAF判断负环存在其实就是bellman-fold的优化,加了一个队列来判断是否需要松弛操作。而判断负环上其实由于如果存在那么一定会有边被多次访问,而一定有负环的时候,访问数一定......
  • 网络流复健
    好长时间不做网络瘤了,啥也不会,于是复健了下。导致现在我看到网络瘤就恶心。大部分都是题,还有一小部分也是题。在这里放个歌词罢。\(\textbf{Borninthemonthofda......
  • 关于汉诺塔问题一些体会(大学复健的第一篇随笔)
    递归条件相同结构的子问题————考察子问题与当前问题的关系存在可以单独计算基础结构所以我们考察第一个条件,汉诺塔的移动方式第一步将所有上层移动到一......
  • C++复健:运算符重载,实现string容器,实现string和vector的迭代器
    使得对象的运算像内置类型一样a.operator+(b);重载运算符的一些注意点:不能重载运算符操作基础数据类型:(1)重载运算符必须和用户定义的class类型一起使用(2)重载的运算符......
  • Unix\Linux多线程复健(二)线程同步
    线程同步并非让线程并行,而是有先后的顺序执行,当有一个线程对内存操作时,其他线程不可以对这个内存地址操作线程之间的分工合作线程的优势之一:能够通过全局变量共享信息......
  • Unix\Linux多线程复健
    线程是程序中完成一个独立任务的完整执行序列(是一个可调度的实体)一个进程可以包含多个线程查看指定进程的线程号:ps-Lfpid进程是CPU分配资源的最小单位,线程是操作系......
  • git使用(复健 1 )
    #```shell#ubuntu:sudoapt-getinstallgit```###winodwshttps://git-scm.com/downloads设置用户名和邮箱:```bash$gitconfig--globaluser.name"YourName"$g......
  • CF757G Can Bash Save the Day? (复健 Day 1)
    先差分为\(Q(r)-Q(l-1)\),\(Q(i)=\sum_{j=1}^{i}\operatorname{dis}(p_j,x)\)。树上在线路径优先考虑点分树,先想询问怎么做,我们记\(f_i\)为点分树上\(i\)点子树内所......