该文被密码保护。 阅读全文
posted @ 2019-11-15 22:17 DTTTTTTT 阅读(2) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2019-11-15 22:16 DTTTTTTT 阅读(3) 评论(0) 推荐(0) 编辑
摘要:$Sol$ $f_{i,j}$前$i$个垃圾,能活到时间$j$的最高垃圾高度.$t_i$表示第$i$个垃圾掉落的时间,$g_i$表示吃垃圾$i$能维持的时间,$h_i$表示堆垃圾$i$的高度. $f_{i,j}=max\{f_{i 1,j}+h_i,f_{i 1,j g_i}\}$. 注意初始化和转 阅读全文
posted @ 2019-11-03 13:14 DTTTTTTT 阅读(64) 评论(0) 推荐(0) 编辑
摘要:$Sol$ 先考虑单栈排序,怎么样的序列可以单栈排序呢?设$a_i$表示位置$i$是哪个数.$\exist i define il inline define Ri register int define go(i,a,b) for(Ri i=a;i=b; i) define e(i,u) for( 阅读全文
posted @ 2019-10-28 12:50 DTTTTTTT 阅读(47) 评论(1) 推荐(0) 编辑
摘要:$Sol$ 不知道为啥看起来就很$dp$的亚子.我们关心的只有$A$串当前用到哪一个,$B$串已经匹配到哪个位置,已经匹配的被分成了多少段.所以设$f_{i,j,k,0/1}$表示$A$串用到第$i$个,$B$串已经匹配到第$j$个,分成了$k$段,最后一段是否被断开. 瞎转移一波(这里就不详细讲了 阅读全文
posted @ 2019-10-27 12:53 DTTTTTTT 阅读(72) 评论(0) 推荐(0) 编辑
摘要:这是一篇很长很长很长很长很长的$blog.QwQ$ 阅读全文
posted @ 2019-10-27 10:22 DTTTTTTT 阅读(156) 评论(6) 推荐(1) 编辑
该文被密码保护。 阅读全文
posted @ 2019-10-26 15:05 DTTTTTTT 阅读(6) 评论(2) 推荐(0) 编辑
摘要:$Sol$ 设一个矩阵的左上角为$(x_1,y_1)$,右下角为$(x_2,y_2)$,$s_{x,y}$是到$(1,1)$二维前缀和,那么这个矩阵的答案显然是$s_{x_2,y_2} s_{x_1 1,y_2} s_{x_2,y_1 1}+s_{x_1 1,x_2 1}$.考虑把每个询问拆成这么四 阅读全文
posted @ 2019-10-26 11:50 DTTTTTTT 阅读(56) 评论(0) 推荐(0) 编辑
摘要:$Sol$ 设$f_i$为到第$i$秒的方案数,显然$f_i=$在第$i$秒前爆炸的方案数+在第$i$秒爆炸的方案数+在第$i$秒停下的方案数+在第$i$秒走向下一个城市 的方案数.注意到第四个转移和当前在哪个城市有关,所以要另记一维$j$表示当前位置.于是$f_{i,j}=$第$i$秒前在$j$爆 阅读全文
posted @ 2019-10-26 09:10 DTTTTTTT 阅读(57) 评论(0) 推荐(0) 编辑
摘要:$Sol$ 觉得这里是个很巧妙的地方吖,就是记下当前扩展点集的最大深度,然后强制下一步扩展的点集都是最大深度+1.这样做在当前看可能会导致误算答案导致答案偏大,但是整个$dp$完成后一定可以得到最优解. 怎么计算扩展点集的代价呢,显然是要扩展的点向已扩展的点里连最短边,这个可以暴力计算. 注意一个细 阅读全文
posted @ 2019-10-24 23:00 DTTTTTTT 阅读(54) 评论(0) 推荐(0) 编辑