该文被密码保护。 阅读全文
posted @ 2018-10-17 19:24 Splitor 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 线段树+具有技巧的二分答案。 ~~这道题我一遍过了!!!!!~~ 这道题目十分的神奇:首先我们会发现两个做题的基石: 1、这道题查询只有一个,所以说我们可以考虑离线处理。 2、我们动态维护排序是十分困难的,但是我们可以想到线段树可以高效的对01串进行排序(通过维护区间内1的个数); 然后我们就想,如 阅读全文
posted @ 2018-10-17 19:22 Splitor 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 我真是太弱了,这么基础的算法这么晚了才会。。。。。。。(wo cai si le 首先我们来看一看: sum[i][j]=sum[i 1][j]+sum[i][j 1]+mp[i][j] sum[i 1][j 1]; 这是她的初始化操作,可以通过容斥原理推一推,确实是这样的。 然后我们再来考虑一下她 阅读全文
posted @ 2018-10-17 16:36 Splitor 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 毒瘤的树上问题 这道题是树网的核的加强版:观察题目,我们会发现,那条修建的路径一定在树的直径上:那么我们首先通过两边bfs求出树上直径,再通过dfs求出直径的点和直径上的前缀和。然后我们二分答案,二分一个最远距离,如何check呢?我们要用一点逆向思维:考虑通过头,尾指针的移动:头指针初始在一个端点 阅读全文
posted @ 2018-10-17 07:24 Splitor 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 休闲树链剖分题目 ~~这道题是我和dota之王 zpz去小卖部的时候口胡出来的,感觉还是挺有意思的~~ 这道题如果没有换根操作那就是个沙雕题。考虑加入换根操作:由于换根可能特别频繁,我们考虑用原来的根当作参照系:显然,修改操作没有任何的影响(不管怎么换,两点之间的路径都是唯一的。)考虑查询子树:如果 阅读全文
posted @ 2018-10-15 16:56 Splitor 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 窝一道也不会 首先来一道题:https://beta.atcoder.jp/contests/agc028/tasks/agc028_b 这道题其实是个期望题!!!我们令P(x,y)表示x包含y的概率,那么P(x,y)可以求出来(1/[x y]),期望就是概率乘以权。最后×上N! 基环树版:在一个基 阅读全文
posted @ 2018-10-14 16:47 Splitor 阅读(296) 评论(0) 推荐(0) 编辑
摘要: https://www.luogu.org/blog/LYYY/p1409 tou zi ti xie 阅读全文
posted @ 2018-10-12 20:00 Splitor 阅读(101) 评论(0) 推荐(0) 编辑
摘要: T1 沙雕题 T2 我们令sum[i][j]表示i字母在j之前出现的次数,显然,我们要使得选择区间i,j,字母a,b使得(sum[a,i] sum[a,j]) (sum[b,i] sum[b,j])的值最大。我们转换一下: (sum[a,i] sum[b,i]) (sum[a,j] sum[b,j] 阅读全文
posted @ 2018-10-10 17:13 Splitor 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 竞赛树图解: 本道题目的实现: 1、建一颗空树 2、每当修改一个选手的实力时要重赛,即update 3、查询时优先递归左孩子,没有再递归右孩子(注意有些地方和线段树是由差别的) code: include include include include include include using n 阅读全文
posted @ 2018-10-10 07:31 Splitor 阅读(236) 评论(0) 推荐(0) 编辑
摘要: Dp+优化 首先我们考虑暴力怎么写?dp[i]表示选到i号辣鸡并将其放回的最优解,那么令dis[i]表示从1走到i的曼哈顿距离之和,from[i]表示从(0,0)走到i的曼哈顿距离,那么 $$ dp[i]=min(dp[i],dp[j]+dis[i] dis[j+1]+from[j+1]+from[ 阅读全文
posted @ 2018-10-08 17:16 Splitor 阅读(121) 评论(0) 推荐(0) 编辑