
Dfs
xyc1719
努力会说谎,但努力不会是白费
展开
-
Tree
【题意摘要】给一棵有边权的有根树,减去所有从某一祖先到该点的路径和为负数的节点及其子节点。【分析】用两个dfs解决,一个用来判断节点是否存在负数路径,用类似序列中two-pointers的方式处理树上问题;另一个统计被减去的节点数。因为是有根树,所以只需要从父亲连有向边即可。【code】#include<cstdio>#include<cstring>#inc...原创 2018-10-21 18:23:17 · 115 阅读 · 0 评论 -
树上摩托 sherco.cpp
【一句话题意】给定一棵树,问剪成几棵节点数相同的子树的方案数。节点数n<=1e6【分析】易证当每棵子树的节点数相同时,划分方案是唯一的。问题在于确定点数并进行判定。本来是一道愉悦身心的好题,结果n是1e6。考场上是先根号n筛n的因数,再用dfs判定,结果。。。顺利超时。然后,正解是把dfs转化为O(n)的线性扫描,原因是常数小。。。。。再次投诉出题人,竟然卡dfs。【code】#i...原创 2018-10-27 16:39:27 · 243 阅读 · 0 评论 -
卡内存
【简要题意】给一个长度为n序列。进行m次如下操作:1.add x k:给a[x]加上k。2.ask x y:查询区间[x,y]内所有数的和。3.goto t:回到第t次操作之后的状态。n,m<=1e5。特别注意:空间限制为8MB【分析】由于题目背景中出现了可持久化线段树,又有回退到历史版本的操作,所以很多人试图如题目所说的那样卡可持久化的内存。事实证明是卡不过的。这里有一种神奇...原创 2019-02-24 14:55:42 · 10519 阅读 · 0 评论