摘要:
模板:可并堆 可并堆真的很好写!可并堆真的很好写!可并堆真的很好写! 只有一个合并操作,插入都是用合并实现的,最多再来一个并查集,真的简单到爆好吗。。 代码:#include#define ll long longusing namespace std;const i... 阅读全文
摘要:
模板:割点 还是那本书,自己看。 吐槽一句:tarjan真的能干好多事儿啊QAQ 代码:#include#define ll long longusing namespace std;struct edge{ int to,next;}e[200001];int... 阅读全文
摘要:
模板:洛谷P3387 关于tarjan大神的算法我也只能抄抄代码了(滑稽) 其实《算法竞赛入门经典:训练指南》里有讲解,很详细。 代码:#include#define ll long longusing namespace std;vector G[10001];in... 阅读全文
摘要:
模板:洛谷P3385 由于DFS-SPFA可以在找到负环后及时退出,所以不会像BFS-SPFA那样TLE。 代码:#includeusing namespace std;inline void read(int &x){ x=0; int k=1; ... 阅读全文
摘要:
这是一种离线算法,但是时间超级快,是O(n+m)。 主要是dfs实现这个过程。 下面详细介绍一下Tarjan算法的基本思路: 1.任选一个点为根节点,从根节点开始。 2.遍历该点u所有子节点v,并标记这些子节点v已被访问过。 3.若是v还有子节点,返回2... 阅读全文
摘要:
此题树状数组卡常好题(滑稽)题目描述很久很久以前,在遥远的大陆上有一个美丽的国家。统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草。有一天国王漫步在花园里,若有所思,他问一个园丁道: “最近我在思索一个问题,如果我们把花坛摆成六个六角形,那... 阅读全文
摘要:
主席树原理就是区间内的第k大可以通过每个数字的出现次数随便乱加减搞出来,然后,就可以像前缀和那样建n个线段树,就可以查询区间第k大了! 主要问题就是空间绝对爆炸,大概n2logn左右。 看这个图:(来自blog) 可以发现每一颗线段树结构都相同,只是每次都有logn... 阅读全文
摘要:
此题大约为提高+的难度。题目描述在数轴上有 n个闭区间 [l1,r1],[l2,r2],…,[ln,rn]。现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置。换句话说,就是使得存在一个 x,使得对于每一个被选中的区间 [li,ri],都有 li≤x≤r... 阅读全文