08 2019 档案

摘要:DP 复习。 参考 "redbag 博客" 提供的题表。 P2858 [USACO06FEB] Treats for the Cows 区间 DP。 转换思路,题面从外往里递推,我们采用从里往外递推,权值逐级递减的反向实现方式。 选择区间左端点或右端点更新答案。 cpp int n, a[2003] 阅读全文
posted @ 2019-08-30 12:07 greyqz 阅读(127) 评论(0) 推荐(0) 编辑
摘要:P1352 Bosses' Masquerade 树形DP模板。 cpp include include using namespace std; int n, r[6003], f[6003][2], v[6003], root, ans; int head[6003], nex[6003], t 阅读全文
posted @ 2019-08-29 09:16 greyqz 阅读(183) 评论(0) 推荐(0) 编辑
摘要:单调队列复习。 投资 (invest) 给定一带符号整数数列,求长度为 $[s, e]$ 的子区间的和的最大值。(最大子段和) 降二维为一维,for循环枚举区间右端点。预处理前缀和,问题转化为找到最小的左端点。 使用单调队列维护查找范围内最小值。参看 "单调队列总结" 。 单调队列算法实现: 1. 阅读全文
posted @ 2019-08-28 21:34 greyqz 阅读(134) 评论(0) 推荐(0) 编辑
摘要:高精度 cpp struct bigint{ int a[1000],an; bigint operator = (int b){ an=0; while (b){a[an++]=b%10;b/=10;} return this; } bigint operator = (long long b){ 阅读全文
posted @ 2019-08-27 20:51 greyqz 阅读(189) 评论(0) 推荐(0) 编辑
摘要:"P1021" 邮票面值设计 暴搜各面值。 剪枝1:面值递增,新面值 $\in[G_{i 1}+1, n\cdot sum]$. 为什么上界不是 $n\cdot G_{i 1}+1$ 呢? 剪枝2:$G_1=1$. dp 求面值最大值。 cpp include include include usi 阅读全文
posted @ 2019-08-07 11:58 greyqz 阅读(148) 评论(0) 推荐(0) 编辑
摘要:"P1016" 旅行家的预算 单调队列。 再看看单调队列怎么用的。 阅读全文
posted @ 2019-08-05 12:16 greyqz 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"P1013" 进制位 结论:加法必为 $n 1$ 进制;${(n 1)}^1$ 位必为数字 1;$0+0=0$。 模拟、字符串。 cpp include include include using namespace std; int n, num[11], id[11], tab[11][11] 阅读全文
posted @ 2019-08-03 11:27 greyqz 阅读(157) 评论(0) 推荐(0) 编辑