摘要: 题目 "题目在这里" 思路 就是个搜索啊 代码 cpp include include include include include include include using namespace std; const int N = 25; int a[N]; int n; struct Dat 阅读全文
posted @ 2018-04-04 17:20 EZ_WYC 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题目 "题目在这里" 思路&做法 我们先对标准作文库建广义后缀自动机。 然后对于每一篇阿米巴的作文, 我们首先把放到广义后缀自动机跑一遍, 对于每一个位置, 记录公共子串的长度$($即代码和下文中的$val$数组$)$ 接着我们二分答案, 用DP检验。 Dp方程很好想, $d_i = max \{ 阅读全文
posted @ 2018-04-04 17:01 EZ_WYC 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目: "题目在这里" 思路&做法: "参考的题解" 既然只有$20$个叶子节点, 那么可以从每个叶子节点往上建一颗$trie$树, 然后合并成一棵大的$trie$树, 然后构建广义后缀自动机。 $($ 实现起来就是dfs时把节点上的颜色加进广义后缀自动机$)$ 再然后就统计一下就可以了$(ans 阅读全文
posted @ 2018-03-24 14:41 EZ_WYC 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 题目: "题目在这里" 思路: 这题的DP不难, 但不要被题目描述迷惑了 状态转移方程: $$f_i = min \{ g_j + (sum_i sum_j) sum_j \}$$ (用了滚动数组, f是当前处理的, g是上一次得出的) 可以用斜率优化 $$g_j + (sum_i sum_j) s 阅读全文
posted @ 2018-03-22 16:41 EZ_WYC 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 题目: "题目在这里" 思路与做法: 这题如果想要直接dp的话不太好处理。 不过, 我们发现如果$a[i].x =a[j].x$且$a[i].y =a[j].y$ $($a是输入的数组,x为长,y为宽$)$, j是没用的, 可以直接去掉, 然后就可以dp了 容易得出状态转移方程为: $f_i = m 阅读全文
posted @ 2018-03-18 20:19 EZ_WYC 阅读(129) 评论(0) 推荐(0) 编辑