上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页
摘要: "C Cow and Message" 对于字符串问题,如果对于下标进行操作复杂度很大的话,可以考虑对字母进行操作,这样计算复杂度的时候就是对26进行计算了。 阅读全文
posted @ 2020-03-03 11:52 caoanda 阅读(128) 评论(0) 推荐(0) 编辑
摘要: "D Navigation System" 参考: "Codeforces Round 625 (Div. 1, based on Technocup 2020 Final Round).B. Navigation System" 在遍历这个点A的时候,其实是判断下一个点B是否需要重新规划路径,如果 阅读全文
posted @ 2020-03-02 20:36 caoanda 阅读(206) 评论(0) 推荐(0) 编辑
摘要: "Strange Towers of Hanoi" 表示 i 个圆盘借助一个圆盘,转移到另一个圆盘上需要的次数。 为最优解时,其子问题 也必为最优解。如果 不是最优解,那么存在`f'[i k] define mst(name, value) memset(name,value,sizeof(name 阅读全文
posted @ 2020-03-01 16:06 caoanda 阅读(88) 评论(0) 推荐(0) 编辑
摘要: "费解的开关" 利用逆推,得出6步之内可以得到的状态,剪枝之后,可以在规定时间内完成。 阅读全文
posted @ 2020-02-26 20:08 caoanda 阅读(115) 评论(0) 推荐(0) 编辑
摘要: "递归实现指数型枚举" 状态压缩: 分别遍历每一个状态即可。 阅读全文
posted @ 2020-02-26 15:24 caoanda 阅读(149) 评论(0) 推荐(0) 编辑
摘要: "最短Hamilton路径" 利用动态规划可以很好地解决这个问题。 $dp[i][j]$中 i 利用状态压缩,可以表示已经走过了多少个点,j 表示的是当前所在点。 阅读全文
posted @ 2020-02-26 14:10 caoanda 阅读(141) 评论(0) 推荐(0) 编辑
摘要: "C2 Skyscrapers (hard version)" 分别用 表示在 i 位置能取到的左边的值之和,右边的值之和。 利用单调栈的思想。 降低复杂度的方法是,充分利用重复计算的数据,将其保存下来,避免多次计算。 阅读全文
posted @ 2020-02-24 19:19 caoanda 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 快速乘 参考: "小技巧1——长整型:64位整数的乘法模运算" 当 a 和 b 都大于1e9的时候,为了防止溢出,就需要一个算法,叫做快速乘。 实现方法一: 将乘法转换为加法,并且伴随着取模操作的进行,可以保证不会溢出。 而为了加速加法操作,可以利用快速幂的思路,对加法操作进行优化,复杂度为$O(l 阅读全文
posted @ 2020-02-22 16:13 caoanda 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 图中长度为k的路径的计数 $G_{k_1+k_2}[u][v]=\sum^n_{w=1}G_{k_1}[u][w] G_{k_2}[w][v]$ 经过变形,$G_{k_1+k_2}=\sum^n_{w=1}G_{k_1} G_{k_2}$ 所以$G_k=G_1^k$ 阅读全文
posted @ 2020-02-21 22:58 caoanda 阅读(219) 评论(0) 推荐(0) 编辑
摘要: "Blocks" 利用递推的想法得到一个递推公式,在本质上它是一个 dp 的题目,但是由于 n 过大,不能使用 dp 解决,所以将递推公式化为矩阵乘法,所以可以用矩阵快速幂进行优化。 阅读全文
posted @ 2020-02-20 20:21 caoanda 阅读(409) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 29 下一页