摘要: 恢复内容开始 神仙题。。。 第一眼还以为是道数学题。。。 看了题解发现是道恶心的Dp。。 设 f[i] 表示 以珠子 i 为结尾的方案数(必须选i),然后能对其做出贡献的只有 x ~ i-1 这段区间。。 x表示 a [ x ] == a [ i ] && a[ x+1 ~ i-1 ] != a [ 阅读全文
posted @ 2019-11-04 10:09 dzzx_Syh 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 搞很多棵动态开点线段树维护区间第K大。。 wocao.. 细节很多。。 啥也不说了。 Code 阅读全文
posted @ 2019-10-25 10:30 dzzx_Syh 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 今天学习康托展开 和 可重集康托展开。。。 康托展开。。就是给你一个1~n全排列,问它的排名。。 例如:x1, x2 , x3 , x4 , x5 是一个1~5的全排列,现在我们要求它的排名。。 从第1位开始枚举。。 然后枚举j,当然这个j要< xi ,并且不能在x(1~i-1)中出现过。 发现当 阅读全文
posted @ 2019-10-24 10:44 dzzx_Syh 阅读(117) 评论(1) 推荐(0) 编辑
摘要: CDQ分治第一道题。。 这里我主要想说几个细节。。坑了我很久。 结构体里面的标号$id$应是按第一维$a$排完序之后的。。 然后就是CDQ里面排序时应按如下规则排序。。 bool cmp2(const Node &i,const Node &j){ if(i.b!=j.b) return i.b<j 阅读全文
posted @ 2019-10-23 15:03 dzzx_Syh 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 二维RMQ问题模板。。。(虽然我用单调队列加一维RMQ过的,,,但这个更方便一些,就再拿出来写写。。跑的还快一点。。) 和一维差不多,只不过需要比较四个区域罢了。。 额,就是这样。。 上代码。 阅读全文
posted @ 2019-10-20 09:48 dzzx_Syh 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 考虑距离只存在1的情况。 f[ ] [ ] 为最开始的0,1矩阵,则有转移方程f (t) [i][j] = ∑ f (t-1) [i][k] * f (1) [k][j] ,矩阵快速幂即可 由于距离不一定为1,所以要拆点。。 将一个点拆成8个点,由H(i , j) 向 H( i, j-1)连一条长度 阅读全文
posted @ 2019-10-18 18:37 dzzx_Syh 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 找欧拉回路 / 路径。 欧拉回路存在的条件是只有度数为偶数的节点,起点是字典序最小的节点 欧拉路径存在的条件是有且仅有2个度数为奇数的节点,起点是字典序最小的且度数为奇数的节点 从起点开始dfs,每次找与他相连的字典序最小的节点即可。。。回溯的时候记一下路径。。 别忘了用并茶几盘一下图是否联通。。 阅读全文
posted @ 2019-10-17 19:48 dzzx_Syh 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 我们首先考虑暴力如何做。 现在最大的问题就是如何找出这个神秘数 先按升序排序,然后一个一个加数。 假设现在的值域是[1,pos],当前要加入的数是 x ; 不难发现,有两种情况: 若x>pos+1 , 那么一定拼不出pos+1,答案即为pos+1; 若1<= x <= pos+1 , 那么现在的值域 阅读全文
posted @ 2019-10-17 09:24 dzzx_Syh 阅读(123) 评论(1) 推荐(0) 编辑
摘要: 这道题首先想到Dp。。 不妨设 f[i] 表示杀死怪兽 i 需要的最少体力, 那么有 f[i] = min( k[i] , s[i] + ∑ f [ri] ) , 这还是很好想的。。 但是没有办法转移啊,因为可能有环,高斯消元??,不存在的。。 然后就开始搞最短路了,但怎样建图呢,一般的跑最短路都是 阅读全文
posted @ 2019-10-16 08:54 dzzx_Syh 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 这道题好仙啊,不过暴力都能拿70pts。 考虑每个点的贡献,会发现,它只对它所有食物的LCA及LCA到根的路径上的节点有灾难值为一的贡献。 然后就是建树啦,我们必须保证当前节点的所有食物都已建好树,所以top_sort,在更新入度到为零时,就求出它所有食物的LCA, 然后将LCA做为此节点的父节点, 阅读全文
posted @ 2019-10-15 20:45 dzzx_Syh 阅读(102) 评论(0) 推荐(0) 编辑