上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 题目链接:Link Problem Solution 直接大力dp,记录行号、状态、个数即可。时间复杂度看起来是 $ O( n * 2 ^ n * n ^ 2 * 2 ^ n) $ 级别的,但是预处理出所有合法的状态转移后,你会发现平均每次只会转移给3个状态,可以直接跑过。 Code #includ 阅读全文
posted @ 2019-10-29 19:59 happyZYM 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 又是一道大力dp题。因为起点不固定,所以必须要分是小a还是uim到达两种状态。 为啥我m敲成n还拿了50分。。。害得我查了半天。。。数据一点区分度有没有。。。 Code #include<cstdio> #include<cstring> #in 阅读全文
posted @ 2019-10-28 22:11 happyZYM 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 看一眼数据范围,再看一眼“高性能”,不难发现直接大力dp即可。 如果倒着做会比较麻烦,直接从 $ f(0,0,0,0,0)=0 $ 开始,使用刷表法。 Code #include<cstdio> #include<cstring> #includ 阅读全文
posted @ 2019-10-27 20:24 happyZYM 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 这题是个双倍经验 Code #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn=5005; int n,rlen=1 阅读全文
posted @ 2019-10-27 17:42 happyZYM 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 考虑到没有相同的字符串,不难发现这是一个树形dp,在字典树上,一旦某个节点被选中,其子树中的任何节点都不能被选中。 如果使用字符串比较建图的话,需要注意去除多重的边。 Code #include<iostream> #include<cstdio 阅读全文
posted @ 2019-10-23 21:20 happyZYM 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 计算一下质数的数量,发现可以直接套SG函数。当计算出SG函数值后,分必胜和必败两种情况计算步数即可。 Code #include<cstdio> #include<cstring> #include<algorithm> using namesp 阅读全文
posted @ 2019-10-23 20:23 happyZYM 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 考虑到如果经过一个路灯,显然可以直接随手把它关掉,毕竟关灯不耗时,因此,必定有一种最优解满足:任何时候已关的灯都是一个连续的序列。 则确定一个状态需要3个变量:左端点,右端点,关完后的位置。 尝试写出转移方程,发现无误,即得解。 Code #in 阅读全文
posted @ 2019-10-23 19:59 happyZYM 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 我一开始居然没看到球是不同的。。。 Code from sys import * # IO def isprint(ch): isp=['A','B','C','D','E','F','G','H','I','J','K','L','M','N' 阅读全文
posted @ 2019-10-22 21:27 happyZYM 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 在确定状态时不妨强制令其必须取当前子树的跟节点,不难发现此时贪心取其子树即可。 Code #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using 阅读全文
posted @ 2019-10-21 21:56 happyZYM 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题目 答案及解析 (未完待续) 阅读全文
posted @ 2019-10-21 21:46 happyZYM 阅读(822) 评论(2) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 不难发现:Floyd的计算过程非常类似于矩阵乘法,尝试对其进行分治后不难证明可以套用矩阵快速幂的方法进行快速计算。 Code #include<cstdio> #include<cstring> #include<algorithm> #incl 阅读全文
posted @ 2019-10-11 20:29 happyZYM 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 这题几乎是一个裸的无向图最小环,用一个数组记录最短路的中间节点是什么即可。 Code #include<cstdio> #include<cstring> #include<algorithm> #include<vector> using na 阅读全文
posted @ 2019-10-11 20:03 happyZYM 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 首先不难想到,至少要记录四个状态:“有4种颜色的牌的面值个数”“有3种颜色的牌的面值个数”…… 然后尝试再记录一个状态:当前状态动的那个牌的面值的颜色数。但这样会导致边界条件特判过于麻烦。 考虑进行如下容斥: 当动有1种颜色的牌时,显然 $ ad 阅读全文
posted @ 2019-10-08 21:40 happyZYM 阅读(230) 评论(3) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 题意是给你一个n长度递增数列,将其分组,每组不少于m个,每组的cost是每组中所有元素减去里面最小元素的值的总和,要求你算最小的cost。 显然可以用dp完成。 \[f(i) = \min\limits_{0 \le j \le i-m } \{ 阅读全文
posted @ 2019-10-07 11:24 happyZYM 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Link Problem Solution 不难写出方程: \[f(i)=\min\limits_{0 \le j < i } \{ f(j)+a(s_i-s_j)^2+b(s_i-s_j)+c \} \]去掉min函数,展开得: \[f(i)=f(j)+a*s_i^2 - a*s_i*s 阅读全文
posted @ 2019-10-07 10:18 happyZYM 阅读(154) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页