摘要:
题面 "Loj" 题解 枚举每一个点 分两种情况 翻倍or不翻倍 $1.$如果这个点$i$翻倍, 要保持排名不变,哪些必须翻倍,哪些可以翻倍? 必须翻倍: $a[i] \leq a[x] include include include include define ll long long usin 阅读全文
摘要:
题面 "luogu" 题解 $Cdq分治+dp$ $mx[i],mn[i]$分别表示第$i$位最大,最小能取到多少 那么有 $j define LL long long define RG register using namespace std; template inline void read 阅读全文
摘要:
题面 "luogu" 题解 裸的错排问题 错排问题 百度百科:$n$个有序的元素应有$n!$个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排;有的叫重排。如,1 2的错排是唯一的,即2 1。1 2 3的错排有3 1 2,2 3 1。这二者可以看作是1 2错排,3分别与1、 阅读全文
摘要:
题面 "luogu" 题解 一道复杂的期望$dp$ 思路来源: "__stdcall" 容易想到,只要把每张牌打出的概率算出来就可以求出$ans$ 设$fp[i]$表示把第$i$张牌打出来的概率 可知:$fp[0] = 1 (1 p[0])^r$ ($(1 p[0])^r$即一直不打出的概率) 后面 阅读全文
摘要:
题面 "luogu" "Codeforces" 题目大意: 给一个长度为$n$的序列,求两个不相交的子集长度之和最大是多少,能放入同一子集的条件是首先顺序不能变,然后每一个相邻的要么相差$1$或者相差$7$的倍数。 $n define LL long long define RG register 阅读全文
摘要:
题面 "luogu" "bzoj" 题目大意: 给你一个长度为$n$的序列,元素都在$1 k$之间,有些是$ 1$,让你把$ 1$也变成$1 k$之间的数,使得逆序对最多,求逆序对最少是多少 $n define LL long long define RG register using namesp 阅读全文
摘要:
题面 "luogu" 题解 树形$dp$ $f[x][y]表示x的y层以下的所有点都已经覆盖完,还需要覆盖上面的y层的最小代价。$ $g[x][y]表示x子树中所有点都已经覆盖完,并且x还能向上覆盖y层的最小代价。$ 对于 $u v$, $u$为$v$的父亲: $g[u][j] = min(g[u] 阅读全文
摘要:
题面 "bzoj" 题目大意: 给出一个模式串$S(|S|≤15)$ 问存在多少个长为$m(m≤1000)$ 的字符串T满足$LCS(S,T)=x(0≤x≤|S|)$ 输出$|S|+1$个结果$(mod 1e9+7)$ ($|S|$表示字符串S的长度,字符集为$A,T,C,G$四个字母) 题解 朴素 阅读全文
摘要:
题面 "luogu" 题解 数据范围已经告诉我们是虚树了,考虑如何在虚树上面$dp$ 以下摘自 "hzwer博客" : 构建虚树以后两遍dp处理出虚树上每个点最近的议事处 然后枚举虚树上每一条边,考虑其对两端点的答案贡献 可以用倍增二分出分界点 如果a,b的分界点为mid,a,b路径上a的第一个儿子 阅读全文
摘要:
题面 "CodeForces" "luogu" 题解 数位dp 设$f[i][j][k][l]$表示当前在第$i$位有$j$位大于等于$k$,当前有没有卡上界的方案数 则枚举新加的数$p$, 有$f[i+1][j+(p≥k)][k][l|(p define LL long long define R 阅读全文
摘要:
题面 "luogu" 题解 ~~本来想练数位dp的,结果又忍不住写了组合数..~~ 去掉一个$0$可以看作把$0$移到前面去 那么题目转化为 $n$有多少个排列小于$n$ 强制某一位比$n$的对应位置上的数小, 后面方案组合数算一下即可 Code cpp include define LL long 阅读全文
摘要:
题面 "luogu" 题解 组合数 枚举有多少个$1$,求出有多少种数 扫描$n$的每一位$1$, 强制选$0$然后组合数算一下有多少种方案 Code cpp include define LL long long define RG register using namespace std; te 阅读全文
摘要:
题面 "luogu" "CodeForces" 题解 $orz$ "yyb" 转移蜜罐其实是吓唬人的...... 转移的蜜罐都是尝试过的,所有只关心当前架子上的蜜罐数 设$f[i][j]$表示第i个货架有j个蜜罐没有被试吃的概率 然后枚举品尝了几个之前没有品尝过的,组合数转移一下 Code cpp 阅读全文
摘要:
题面 "luogu" 题解 缩点+树形dp 依赖关系可以看作有向边 因为有环,先缩点 缩点后,有可能图不联通. 我们可以新建一个结点连接每个联通块. 然后就是树形dp了 Code cpp include define LL long long define RG register using nam 阅读全文
摘要:
题面 "洛谷" 题解 $f[i][j]$表示有i个人参与游戏,从庄家(即1)数j个人获胜的概率是多少 $f[1][1] = 1$ 这样就可以不用讨论淘汰了哪些人和顺序 枚举选庄家选那张牌, 枚举下一次的庄家 可以得到这次的庄家 然后转移即可 Code cpp include define LL lo 阅读全文