03 2021 档案
摘要:传送 因为每个人是最优策略,所以他会选中奖概率最高的箱子。 要知道当前哪一个箱子中奖概率最高,就应该求出一个人抽完奖后这个箱子期望有几个信封获奖,即$l_i-\frac$个。 如果这道题不要输出分数的话,用单调队列模拟$k$次就好了。 加上分数的条件,就是把$l_i$看成$\frac$,则抽完后,就
阅读全文
摘要:传送 这是一道挺不错的期望题。 令小于等于$i$中素数的个数为$n$,其中能整除$i$的有$k$个,那么可以列出一个期望方程:\(dp[i]=\frac{1}{n}\sum_{j=1}^{k}dp[\frac{i}{p_j}]+\frac{n-k}{n}dp[i]+1 \ (p_j|i)\). 化简
阅读全文
摘要:传送 首先用一个$O(n^2)$的dp求出当晚垂头丧气的概率$p$.($dp[i][j]$表示玩了$i$盘,赢了$j$盘的概率,转移显然)。 那么答案就是$ans = \sum_^{+\infty} i * (1 - p) ^ * p$. 先把正无穷看成$n$,然后这个可以用错位相减求出前$n$项和
阅读全文
摘要:传送 因为数据很小,可以直接搞一个$5^9$个状态的暴力进行dp。 题解说可以用记忆化优化,没想出来,因为每一个状态的出边不知道怎么在记忆化的同时得到。 因为dp是DAG,所以我就建图然后拓扑了。但如果暴力$92*59$建图会超时,因为有建立了很多不会访问到的点,于是就改成了记忆化dfs建图 。 #
阅读全文
摘要:vjudge传送 条件概率典型例题。 对于第$i$个人,用条件概率公式$P(A|B)=\frac{P(AB)}{P(B)}$.其中$P(A|B)$表示在$r$个人买东西的前提下,$i$买东西的概率,$P(AB)$表示总共有$r$个人买东西,且第$i$个人也买东西的概率,$P(B)$表示$r$个人买东
阅读全文
摘要:E NVWLS 这题看起来不难,实际上确实也不难…… 令$len[i]$表示第$i$个字典串去除元音后的长度,$vow[i]$表示第$i$个字典串的元音个数,那么可以设计一个十分好想的dp: \(dp[i] = max(dp[i - len[j]] + vow[j])\),其中$j$满足和文本串的$
阅读全文
摘要:vjudge传送 这题还真挺难,没想出来。 首先我们要做的是,为了判断所有的重复串,要把这些串放在一个SAM里,但要用特殊字符分隔开来(这里用数字10,以缩小字符集大小)。 接下来我想的是在后缀链接树上dfs,但复杂度是$O(\sum len[i])(i \in 叶子节点)$,这个复杂度上限是$O(
阅读全文
摘要:vjudge传送 给一个字符串,多次询问$[l,r]\(中不同子串的个数。\)(1 \leqslant |S| \leqslant 2000)$ 因为串长才2000,所以可以考虑$O(n^2)$的做法。 令$ans[l][r]\(表示区间\)[l,r]$中不同子串的个数,考虑怎么递推: 我们建立$n
阅读全文
摘要:vjudge传送门 题面:$Q$次询问,每次求子串$[S_l, S_r]$第$k$次出现的位置。 首先,对于原串中的每一个子串,都能在SAM的后缀链接树上找到对应的节点。 那么如果我们知道这个节点的endpos集合,就能找到第$k$次出现的位置了。 所以接下来就要解决这两个问题: 1.快速确定子串在
阅读全文
摘要:vjudge传送门 题面:(用SAM)求串的最小表示法。 首先最小表示法有$O(n)$的做法,但老师把这道题放这是让我们练SAM的,那就说SAM的做法吧。 首先把串的二倍都扔到SAM中,然后可以类比暴力的做法: 暴力的做法是从多个字典序最小的字符开始一位一位的比较,直到当前字典序最小的字符只出现在一
阅读全文
摘要:vjudge传送门 题面:给以个长度为$2.5*10^5$的小写字母组成的字符串,令$F(x)$表示长度为$x$的子串出现次数的最大值,求$F(i)$. 这个算是SAM的裸题吧。 先把SAM建出来,然后统计每一个节点的endpos个数$siz[u]$,那么$max {siz[u] }(len[u]=
阅读全文
摘要:题面传送 真心不想再看这道题。当年我还打了这场csp,本来我的神奇乱搞写法能拿88分。然后想再骗一点后面的大数据,结果自己把空间整爆了……赔了夫人又折兵。 乱搞做法不细说了,总而言之就是打表,然后发现是一个偶尔会下降的递增序列,然后乱搞了一下就差不多了…… 正解是单调队列优化一个贪心。 有一个结论是
阅读全文
摘要:题面传送 题意:给了$n$个堆的高度,要求改变堆的高度,首尾不可改变,使得队列的任意相邻的两数之差$\leqslant d$,求最小代价。 令$dp[i][j]$表示将第$i$个堆的高度改为$j$时,$1 \sim i$的最小代价。 转移很好写:\(dp[i][j] = min\{dp[i - 1]
阅读全文
摘要:题面传送门 看到环,就先想到断环为链。 对于逆时针,可以当做倒过来的顺时针。 接下来对于一个长度为$2n$的链,我们记$sp[i],sd[i]$分别表示$p[i],d[i]$的前缀和。 以顺时针为例,如果从一个地方出发不能环游一周,一定存在一个$j\in[i+1,i+n-1]$,使得$sp[j] -
阅读全文
摘要:题面传送 这题好想,dp嘛。但是转移容易漏。 令$dp[i][j]$表示第$i$天,手里有$j$股时的最大利润,那么 1.啥也不干:\(dp[i][j] = dp[i - 1][j]\). 2.凭空买(前几天啥也不干):\(dp[i][j] = max \{dp[i][j], -j * ap[i]\
阅读全文
摘要:题面传送 一道很简单的dp+单调队列优化的题,推荐洛谷的第一篇题解,给出了多种方法。 令$dp[i][0/1]$表示枚举到第$i$头奶牛,其中第$i$头奶牛不选/选时的最大效率。 那么转移的时候分情况: 如果不选$i$,:\(dp[i][0] = max(dp[i - 1][0], dp[i - 1
阅读全文

浙公网安备 33010602011771号