04 2017 档案

摘要:首先用树状数组维护dfs序来快速支持一个点子树大小的询问。 每次删掉一个叶子时,从根开始往叶子走,显然只有$2size[x]\leq size[father]$的点的父亲才有可能换重儿子。 从根开始往下,找到最高的满足条件的点,从那个点开始继续迭代,每次点数至少减小一半,所以迭代只有$O(\log 阅读全文
posted @ 2017-04-26 16:38 Claris 阅读(553) 评论(0) 推荐(2) 编辑
摘要:比赛的时候因为卡内存,在抠内存的时候改错了,导致赛内没有AC,赛后发现数组开的很小都可以AC。 分析题意我们发现,这题需要求出所有存在的直线形成的上凸壳,那么查询$[L,R]$时在凸壳上二分导数,找到最大值即可。 因为有删除操作,故离线求出每条直线存在的时间区间,在时间线段树上打标记,那么这样会转化 阅读全文
posted @ 2017-04-23 00:42 Claris 阅读(356) 评论(0) 推荐(0) 编辑
摘要:A. Artwork 倒过来并查集维护即可。 B. Bless You Autocorrect! 将字典和询问串都插入Trie中,建好图然后BFS即可。 C. Card Hand Sorting 枚举花色的顺序以及升降序,那么此时最小移动次数$=n-LIS$。 D. Daydreaming Stoc 阅读全文
posted @ 2017-04-21 00:51 Claris 阅读(531) 评论(0) 推荐(0) 编辑
摘要:A. Hacker Cups and Balls 二分答案,将$\geq mid$的数看成$1$,$<mid$的数看成$0$,用线段树进行区间排序检查即可。时间复杂度$O(n\log^2n)$。 B. Bored Dreamoon 设$f[i]$表示$i$的横坐标。对于$h[i]<h[j]$,若$j 阅读全文
posted @ 2017-04-20 12:37 Claris 阅读(867) 评论(0) 推荐(0) 编辑
摘要:首先离线建出两棵树,对树$B$中每个点预处理出其往上$2^k$步的父亲以及中间的串的Hash值。 通过这个可以在$O(\log n)$的时间内比较两个串的字典序,以此将它们按字典序排序。 然后将树$A$压缩成Trie,并求出根到每个点的Hash值,同时预处理出每个串在$B$数组中出现的区间。 具体的 阅读全文
posted @ 2017-04-14 01:22 Claris 阅读(294) 评论(0) 推荐(1) 编辑
摘要:如果知道了树的形态,那么可以树形DP,每个时刻只需要计算必选根的独立集个数以及必不选根的独立集个数。 那么现在知道独立集个数,要构造出树,可以考虑DP这棵树的形态,然后将之前树形DP的值作为现在DP的状态,即$dp[i][j]$表示必选根的独立集个数为$i$,必不选根的独立集个数为$j$时,树的节点 阅读全文
posted @ 2017-04-09 22:55 Claris 阅读(276) 评论(0) 推荐(0) 编辑
摘要:WF2014完结撒花~ 首先求出所有线段之间的交点,并在交点之间连边,得到一个平面图。 这个平面图不一定连通,故首先添加辅助线使其连通。 然后求出所有域,在相邻域之间连一条代价为$1$的边。 对起点和终点进行定位,然后BFS求最短路即可。 时间复杂度$O(n^2\log n)$。 阅读全文
posted @ 2017-04-07 23:36 Claris 阅读(290) 评论(0) 推荐(0) 编辑
摘要:首先将目标点按$y$坐标从小到大排序。 如果加速度为$0$,那么只要贪心走一遍即可。 否则考虑DP,设$f[i][j]$表示从$i$点以速度$j$出发最多能经过多少个点。 注意到将DP值相同的合并可以将$f[i][j]$按$j$划分成$O(n)$段区间,故用区间进行整体转移即可。 在求出DP数组后, 阅读全文
posted @ 2017-04-07 00:31 Claris 阅读(329) 评论(0) 推荐(1) 编辑
摘要:1. Ski race 枚举枚举倍数判断即可。时间复杂度$O(n\log m)$。 2. Chairs DP求出每个点开始走最多能碰到几个椅子,时间复杂度$O(nm)$。 3. Triangle 留坑。 4. Wires 将所有点对$(a,b)$按$a$排序,那么内外都要满足$b$递增。 设$f[i 阅读全文
posted @ 2017-04-06 22:53 Claris 阅读(441) 评论(0) 推荐(0) 编辑
摘要:列出$n\times m$个未知量、$n\times m$个方程的方程组进行高斯消元。 注意到每次消元时只会影响前后$m$个方程,故只保存增广矩阵中的这些项,同时只对这些项进行消元即可。 时间复杂度$O(nm^3)$。 阅读全文
posted @ 2017-04-01 15:53 Claris 阅读(622) 评论(0) 推荐(0) 编辑
摘要:二分答案,让$A$推迟出发$mid$的时间。 对于每个相邻的时间区间,两个点都是做匀速直线运动。 以$A$为参照物,那么$A$不动,$B$作匀速直线运动。 若线段$B$到$A$的距离不超过$mid$,则可行。 时间复杂度$O(n\log n)$。 阅读全文
posted @ 2017-04-01 10:52 Claris 阅读(303) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示