随笔分类 - XCPC——图论/树
摘要:2023ICPC网络赛2B 分治 看到1e5给10s以为是根号log的做法,一直在往小的块暴力,大的块O(n)建图想,但这并没有用。实际上有些常数的双log也可以很慢,还是不要根据数据范围把做法锁的太死! 考虑优化每个虫洞之内的建图,关键在于那个曼哈顿距离是不独立的。考虑只有一个绝对值怎么做:直接排
阅读全文
摘要:缩点(强连通分量) 点击查看代码 const int N=1e5+5,inf=1e9; vector<int> a[N]; stack<int> stk; bool vis[N],instk[N]; int dfn[N],low[N],col[N],w[N]; // co:染色结果,w:点权 vec
阅读全文
摘要:题目链接 对于有向图的问题,先想DAG该怎么做,这点还是没错的。对于DAG,就是一个按照拓扑序的DP,从n出发,每个点考虑删掉几条边即可(因为一定是删掉通往的点最差的那些边)。然后就一直在想有环怎么处理,但似乎不存在正确的解决方案。 这时候就应该考虑dijkstra的思路,即按照答案从小到大更新。沿
阅读全文
摘要:题目链接 对于有向图,首先考虑拓扑,然后就剩下一些环。由于题目中每个点只有一条出边,故剩下的是一些简单环,所以整个图就可以化为一些有向基环树(森林)。 然后考虑计算答案,对于环上的点,考虑该基环树内每个点都可以贡献环上的一个区间,于是直接差分后做前缀和即可。对于树上的点,答案即为子树内与自
阅读全文
摘要:题目链接 原本想的是对询问离线,从小到大考虑,然后维护每个点能到达的集合。但是这个集合间的连边,因为与本身的点权和有关,所以是单向的,即是加了虚点之后也不太会维护优先考虑的边。(感觉不要刻意往离线想,会变得不幸) 如果对克鲁斯卡尔重构树有正确的理解,就会发现:虽然在连边的时候,限制与集合的点权和以及
阅读全文