摘要: 传送门 完了我连背包都不会了…… 考虑暴力,先枚举最小的数是哪个,设大小为$d_i$,个数为$k_i$,所有比它小的数的总和是$sum$,然后把所有比它小的全都装进背包,它以及比他大的做一个多重背包,那么设$dp[j]$表示在剩下的这些数里取的总和为$j$时的方案数,那么$$ans+=\sum_{j 阅读全文
posted @ 2018-10-21 21:40 bztMinamoto 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 传送门 设$dp[i][j][k][0/1]$表示在涂点$(i,j)$,涂了$k$次,当前点的颜色是否对,最多能刷对多少个格子 首先换行的时候肯定得多刷一次 然后是如果和前一个格子颜色相同,那么当前点是否刷对都要转移 如果和前一个格子颜色不相同,那么就考虑是否要再刷一次还是直接转移 阅读全文
posted @ 2018-10-21 20:30 bztMinamoto 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 给定一个序列。查询左端点在$[x_1, y_1]$之间,且右端点在$[x_2, y_2]$之间的最大子段和,数据保证$x_1\leq x_2,y_1\leq y_2$,但是不保证端点所在的区间不重合 这题可以分为几种情况讨论 $y_1<x_2$ 那么这个时候发现$[y_1+1,x_2-1]$里的数必 阅读全文
posted @ 2018-10-21 20:00 bztMinamoto 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 传送门 线段树好题 因为题目中相同的只算一次,我们可以联想到HH的项链,于是考虑离线的做法 先把所有的询问按$r$排序,然后每一次不断将$a[r]$加入线段树 线段树上维护四个值,$sum,hix,sumtag,hixtag$,分别代表当前节点的值,节点历史上的最大值,当前的增加标记,历史上最大的增 阅读全文
posted @ 2018-10-21 19:17 bztMinamoto 阅读(267) 评论(1) 推荐(0) 编辑
摘要: 给出了序列A[1],A[2],…,A[N]。 (a[i]≤15007,1≤N≤50000)。查询定义如下: 查询(x,y)=max{a[i]+a[i+1]+...+a[j];x≤i≤j≤y}。 给定M个查询,程序必须输出这些查询的结果。 这就是一个最大子段和,用线段树就能直接搞掉 然后这里学习了一下 阅读全文
posted @ 2018-10-21 18:22 bztMinamoto 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 传送门 关于excrt 阅读全文
posted @ 2018-10-21 12:52 bztMinamoto 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 传送门 dfs的时候莫名其妙深度太大过不了……然后死活找不出哪里错…… 首先,约数和这东西是个积性函数,或者直接点的话就是如果$$n=p_1^{a_1}p_2^{a_2}p_3^{a_3}…p_m^{a_m}$$ 那么$n$的约数和就等于$$S=\begin{matrix} \prod_{i=1}^ 阅读全文
posted @ 2018-10-21 11:44 bztMinamoto 阅读(218) 评论(0) 推荐(0) 编辑
Live2D