摘要: 题意 有一幅n*n的方格图,n <= 100,每个点上有一个值。从(1,1)出发,走到(n,n),只能走四联通。每走一步花费t,每走三步需要花费走完三步后到达格子的值。求最小花费的值。 拆点,dis[i][j]表示到达第i个点时走的总步数模3等于j时的最小花费值。 阅读全文
posted @ 2017-02-15 21:06 Splay 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 题目大意 上下有两个长度为n、位置对应的序列A、B,其中数的范围均为1~n。若abs(A[i]-B[j]) <= 4,则A[i]与B[j]间可以连一条边。现要求在边与边不相交的情况下的最大的连边数量。n <= 10^5。 在Gold里,此题的数据范围是1000,我们完全可以用简单的最长公共连续子序列 阅读全文
posted @ 2017-02-15 21:00 Splay 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 1176: [Balkan2007]Mokia Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000. 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的 阅读全文
posted @ 2017-02-15 20:30 Splay 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 题目大意:有一个序列,包含多次询问。询问区间左右端点在规定区间里移动所得到的最大中位数的值。 考虑对于每个询问,如何得到最优区间?枚举显然是超时的,只能考虑二分。 中位数的定义是在一个序列中,比中位数小的数跟比它大的数一样多,由于我们要求的是最大的中位数,自然希望能找到一个区间,使得该区间内比该中位 阅读全文
posted @ 2017-02-13 19:13 Splay 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 题目大意 有n个数字,选出一个子集,有q个询问,求子集和模m等于0的方案数%1000000009。(n <= 100000,m <= 100,q <= 30) 假设数据很小,我们完全可以做一个背包。 我们沿着背包的思路,看能不能给物品分一下类,由于m比较小,完全按N个数字模M后的值进行分类,这样就变 阅读全文
posted @ 2017-02-10 21:37 Splay 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 这题是裸的主席树,每个节点建一棵主席树,再加个lca就可以了。 历尽艰辛,终于A掉了这一题,这般艰辛也显示出了打代码的不熟练。 错误:1、lca倍增的时候i和j写反了,RE了5次,实在要吸取教训 2、主席树插入操作的时候,如果插入到的那个点(叶节点)原来有值,而没有加上,导致了WA 以下是历尽艰辛的 阅读全文
posted @ 2017-02-10 21:06 Splay 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 如果按一般的思路来想,去求窗户能框住的星星,就很难想出来。 如果换一个思路,找出每颗星星能被哪些窗户框住,这题就变得非常简单了。 不妨以每个窗户的中心代表每个窗户,那么每颗星星所对应的窗户的范围即以其为中心的、W*H的矩形。把这些矩形的左边和右边,分别加上和减去其价值。而统计这些边只需要开一个线段树 阅读全文
posted @ 2017-02-08 20:58 Splay 阅读(249) 评论(0) 推荐(0) 编辑