08 2019 档案
摘要:每次从敲掉的位置开始bfs就行了,因为敲掉一个方块,只会直接影响其周边的方块,一层层bfs就能找出所有的跌落方块。
阅读全文
摘要:把所有人按照sing从大到小排序,然后枚举sing值最高的人i,比他高的必须得去talk,维护必须去talk的这波人的最大值,作为maxn。 然后两个情况,如果maxn>=sing[i],那么i作为sing最高的人情况下,显然talk中的最大值不可能小于maxn,我们再怎么往talk组加人,也只可能
阅读全文
摘要:n个人,m个篮筐,一共打了k轮,每轮每个人可以投一个球,每个球投进的概率都是p,求k轮后,投中的球的期望是多少? 初中数学题.. n*k*p
阅读全文
摘要:这题我心里最承认的做法是dp[i][j]表示i个老虎,j个鹿的最大存活概率。然后推下转移方程,并不难推。下面这个博客就是这么做的。 https://blog.csdn.net/qq_36346262/article/details/77970325 但是实际上,这个做法边界判断有点多,感觉不优美,于
阅读全文
摘要:dp[i]表示一共n面,已经看见i面,需要多少次看完所有面的期望。 dp[n] = 0。 dp[i] = i / n * dp[i] + (n - i) / n * dp[i + 1] + 1移项处理下就行了。 dp[i] = dp[i + 1] + n / (n - i)
阅读全文
摘要:设出每个点的期望r[i]。 如果i点会瞬移到to[i],则r[i] = r[to[i]] 否则,r[i] = (Σr[j] + (6-cnt)*r[i])/6 + 1 (j为可以往右走的位置,cnt表示其数目,至多6个) 值得注意的是,这个位置最后可能会发现出界了然后原地呆一轮,这种情况一样有贡献,
阅读全文
摘要:给你一年的天数n,问不算自己,至少邀请多少人,有不小于0.5的概率,有人撞生日。 最多邀请多少人,有不大于0.5的概率,没人撞生日是等价的。 邀请第1个人,撞生日概率是(n - 1) / n。 邀请第2个人,撞生日概率是(n - 1) / n * (n - 2) / n。 以此类推计算即可。
阅读全文
摘要:题目中给的都是被逮捕的概率p,并不方便计算,所以统统通过1-p,变成q,表示安全的概率。 然后这么多银行可以选择,有些类似背包问题。开始下意识认为应该是安全概率算体积,金钱算价值,更符合直观想法。但安全概率不是整数,这样子没法dp。 但是背包有个技巧,有时候体积可能是直观上的价值,我们不妨把金钱作为
阅读全文
摘要:dp[i]表示从i到1的期望次数。 dp[i] = ∑dp[j] / cnt + 1。(cnt为所有因子数量,含1和i)但是∑dp[j]中有一个dp[i]。把dp[i]都移项到左侧,得dp[i] = (∑dp[j] - dp[i] + cnt) / (cnt - 1)。提前预处理出来,O(1)回答即
阅读全文
摘要:dp[i]表示,从i点出发到结束位置,期望获得的黄金。 dp[i] = val[i] + ∑dp[j] / cnt(j是i能一步到达的位置,cnt是一步能到达的位置的数量)
阅读全文
摘要:设答案为r,cnt为x[i] >=0的个数 那么r = 1/n * (Σx[i](x[i] >= 0) + ∑(r - x[i])(x[i] < 0)) 然后把r移项到一起解方程, 得到r = ∑|x[i]| / cnt,同除gcd。记得特判下x[i]均为负数的情况即可。
阅读全文
摘要:至少得知道floyd的最初形式,dp[k][i][j],只经过前k个点,i到j的最短路。 所以题目就是问你,任意两点间的最短路,经过的最大编号的点最小是多少,还不含两个端点。 魔改一下dijkstra就行了,每个点跑一次。先比较长度,长度相同比较下最大编号谁的更小。每个点存的经过最大编号并不包含这个
阅读全文
摘要:第一题结合莫比乌斯函数定义,值恒为1。 第二题,phi(i^2) = phi(i) * i,根据欧拉函数的定义式能推出来,每个质因子的指数都增加一倍,都提出来一份,就是原先的phi(i)*i。然后还是跟g(x)卷一下,杜教筛即可。
阅读全文
摘要:打表观察得到,gcd(i,j)==1时,gcd(i^a−j^a,i^b−j^b)的值为i - j。所以,你发现这个题跟ab就没关系了... 变成去求∑∑(i-j)[gcd(i,j) == 1]了。有一个显然的结论,gcd(i,j) == gcd(i-j,i)。 设k为i-j,则变成 ∑(i 1->n
阅读全文
摘要:求第k短的路径。 每一个路径,必定是由一个路径加一条边构成。而且新得到的路径长度一定长于原先的路径长度。 所以我们最开始把所有出边按长短排序。只要把每个点出发的最短的边加入一个堆。然后每次选出堆里最短的边。pot,pos,len。表示这个路径最后一条边是从pot走了其第pos条出边,到某个点x,路径
阅读全文
摘要:题目读了半天没读懂...... 给你一个长度为n的排列a。两种操作,每次把里面的某个数增加10,000,000,或者询问不等于a1-ar,且不小于k的最小的数是多少。k不超过n。所以答案必定不超过n+1。 我们考虑对原序列做权值线段树,下标为原序列的值,值为原序列的下标。 先考虑没有修改,那么不小于
阅读全文
摘要:(A xor C) & (B xor C) 在给定A,B的前提下,式子值最小,此时C的非0最小值是多少? 位运算还是按位考虑 这是保证式子值最小下的abc关系,我们希望c最小,那么c可以取a&b。 但是注意,题目中要求,C非0,所以如果a&b为0,则不行。当a&b为0时,我们应该找,最小的a,b有一
阅读全文
摘要:感觉题意没说清楚,人手中可以存放多条鱼等着烤。 假设每条鱼烤熟需要的时间都很长,那么我们就开始钓一条鱼,然后这面烤着鱼,钓一条鱼,等着这条烤好,以此循环。那么总时间就是k + Σt[i]。 但是实际上可能会有一些鱼烤的特别快,这面鱼都烤好了,我那面还没钓上来新的鱼,导致炉子时间就浪费了。 我们考虑对
阅读全文
摘要:我们考虑,一个子串必定是某个后缀的前缀。 排序相邻的后缀他们的前缀一定最相似。 所以全部的一种子串必定是一些排序相邻的后缀的公共前缀。 从l开始的子串,则从rank[l]开始看,两侧height保证大于子串长度,能延伸多长,则证明有多少个这种子串。 我们用ST表维护出height的最小值,然后通过最
阅读全文
摘要:dp[i][j]表示,考虑a序列1...i,b序列1...j,以b[j]结尾的最长LCIS长度。 考虑转移方程 若a[i] != b[j],则dp[i][j] = dp[i - 1][j] 若a[i] == b[j],则dp[i][j] = max(dp[i - 1][k]) + 1 (b[k] <
阅读全文
摘要:显然的树状DP,dp[u][i]表示以u为根的子树中,价值为i的子树的数量。 转移也很显然。开始时,dp[u][val[u]]为1。每次多一个子树v,就是dp[u]' = dp[u] + ∑dp[u]*dp[v](卷积)。使用FWT处理即可。复杂度O(N*M*logM)
阅读全文

浙公网安备 33010602011771号