摘要:
function get_subset(bitmask) subset = bitmask answer = [bitmask] while subset != 0 subset = (subset - 1) & bitmask put subset into the answer list end 阅读全文
摘要:
引用大佬的定理证明文件:点击下载 需要使用到的结论: 转移方程形如dp[i][j]=mini≤k≤j(dp[i][k−1],dp[k][j]+w[i][j])(min可以换成max) 定义一:对任意的i≤i′≤j≤j′满足$w[i] 阅读全文
摘要:
题目: 有a,b两串字符串,现用a,b构成一个新的一个字符串,规则如下:每次只能取a或b中一个头放在新的子串的末尾。定义跨度费用:同一个字母相隔的最长距离。问新构成的字符串跨度费用最小是多少。 分析: dp。dp[i][j]=a移出i个,b移出j个还需花费 阅读全文
摘要:
题目大意: 一个长度为n的数组,其和能被3整除,且每一个数字满足ai∈[l,r],问有多少种可以满足上述三个条件的数组 分析: dp。dp[i][j]=前i个数构成余数为j的方案数,然后通过这个dp的定义,可以推出递推方程 $dp[i][j]=\sum_{ 阅读全文
摘要:
题目: Little K is interested in BnB mode of the game Crazy Arcade recently. He found it important to preview the exploding time of bombs ,so he worked h 阅读全文
摘要:
题目大意: 数字n可以经过两个操作 (1)乘任意一个整数 (2)对该数字开根号,但需要保证该数字能被开尽 问最少经过上述操作多少次,可以让其变成无法再进行上述两个操作的最小数字。 分析: 受官方题解启发?一个数可以分解成$n=a_{1}^{p_{1}}\cdot a_{2}^{p_{2} 阅读全文
摘要:
题目大意: 一个递增的数组,每个数字ai∈[1,103],问最多可以擦掉几个数字,仍可以让数组恢复成原来的样子。 分析: 比较容易想到,如果一个数字满足ai−1+1=ai,ai+1=ai+1,那么这个ai是可以删除 阅读全文
摘要:
题目大意 有一串长度为n的数字,其中由一些数字看不清了(−1的数字就是看不清的),而这些数字取值范围满足0≤a≤20,问满足一下条件 (1)a1≤a2 (2)an≤an−1 $(3) a_{i}\leq max(a_{ 阅读全文
摘要:
斜率优化dp。首先比较容易想到: 但是很不幸,由上式的可以看出这实际上要用到两层循环,而数据量为50000,如果这样做,肯定超时,这时候需要斜率优化了。 如果递推式能变成,且单调,则可使用斜率优化。 我们将式变形,令,则 由此判断可以使用斜率优化。 关键的来了: 如果我们认为的两个方案且的方案的方案 阅读全文