随笔分类 -  XCPC——图论/树

摘要:2023ICPC网络赛2B 分治 看到1e5给10s以为是根号log的做法,一直在往小的块暴力,大的块O(n)建图想,但这并没有用。实际上有些常数的双log也可以很慢,还是不要根据数据范围把做法锁的太死! 考虑优化每个虫洞之内的建图,关键在于那个曼哈顿距离是不独立的。考虑只有一个绝对值怎么做:直接排 阅读全文
posted @ 2023-09-25 09:27 sz[sz] 阅读(14) 评论(0) 推荐(0) 编辑
摘要:缩点(强连通分量) 点击查看代码 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 阅读全文
posted @ 2023-04-21 17:41 sz[sz] 阅读(18) 评论(0) 推荐(0) 编辑
摘要:题目链接 对于有向图的问题,先想DAG该怎么做,这点还是没错的。对于DAG,就是一个按照拓扑序的DP,从n出发,每个点考虑删掉几条边即可(因为一定是删掉通往的点最差的那些边)。然后就一直在想有环怎么处理,但似乎不存在正确的解决方案。 这时候就应该考虑dijkstra的思路,即按照答案从小到大更新。沿 阅读全文
posted @ 2022-07-11 19:25 sz[sz] 阅读(46) 评论(0) 推荐(1) 编辑
摘要:题目链接 对于有向图,首先考虑bfs拓扑,然后就剩下一些环。由于题目中每个点只有一条出边,故剩下的是一些简单环,所以整个图就可以化为一些有向基环树(森林)。 然后考虑计算答案,对于环上的点,考虑该基环树内每个点都可以贡献环上的一个区间,于是直接差分后做前缀和即可。对于树上的点,答案即为子树内与自 阅读全文
posted @ 2022-04-15 10:05 sz[sz] 阅读(34) 评论(0) 推荐(0) 编辑
摘要:题目链接 原本想的是对询问离线,从小到大考虑,然后维护每个点能到达的集合。但是这个集合间的连边,因为与本身的点权和有关,所以是单向的,即是加了虚点之后也不太会维护优先考虑的边。(感觉不要刻意往离线想,会变得不幸) 如果对克鲁斯卡尔重构树有正确的理解,就会发现:虽然在连边的时候,限制与集合的点权和以及 阅读全文
posted @ 2022-04-03 21:46 sz[sz] 阅读(53) 评论(0) 推荐(0) 编辑

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