/* 返回顶部 */
摘要: gate 背包。 设f[i]为构成重量i的方案数。 则:f[i] = f[i]+f[i-c[i]] 每次更新,记录f[i]是由哪个张牌转移过来的,为pre[i] 为了防止重复(为什么会重复?),仅在当前pre[i]不存在时更新。 且只能从不为0的状态转移过来。 最后判断f[m], 大于1则多解,小于 阅读全文
posted @ 2019-11-12 22:11 Mogeko 阅读(174) 评论(0) 推荐(0) 编辑
摘要: gate 贪心,按(距离+时间)排序。 走一个选一个,若i的距离+(1-i)的时间 > m则不能选了。 记得开long long! 代码如下 #include<cstdio> #include<iostream> #include<cmath> #include<cstring> #include< 阅读全文
posted @ 2019-11-12 17:19 Mogeko 阅读(156) 评论(0) 推荐(0) 编辑
摘要: gate 二维树状数组,区间修改,区间查询 对于区间$(x,y)$,用差分数组来维护,每次从$(1,1)$加到$(i,j)$ 可以发现,$t[1][1]$被加了$x*y$次,$t[1][2]$被加了$(x-1)*y$次… 那么区间$(x,y)$的和即为 $∑i=(1,x)∑j=(1,y)$ $t[i 阅读全文
posted @ 2019-11-12 16:40 Mogeko 阅读(245) 评论(0) 推荐(0) 编辑
摘要: gate 并查集! 对于一段区间(L,R),若有奇数个一,则(1,L-1)和(1,R)奇偶性一定不同,反之亦然。 把奇偶性相同的区间连起来。 如果将i和i+N视为相反的状态, 假设A和B的奇偶性相同,则合并A,B,A+N,B+N。 不同,则合并A.B+N,A+N,B。 那么,每次给出一个回答,合并前 阅读全文
posted @ 2019-11-12 14:02 Mogeko 阅读(184) 评论(0) 推荐(0) 编辑