摘要:
题目链接:https://www.luogu.com.cn/problem/P3119 题目大意:给你m组单向边关系,你可以选择返回走一次,但是要保证出发点是1和终点是1,问你最大能到达几个点 题目解法: 首先我们可以通过缩点将一个强连通分量里的所有点变成一个点,并且可以知道缩点以后的图是没有环的, 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P3469 题目解法: 错解(50pts):我先用Tarjan跑了一把找到所有割点,因为非割点的话造成的影响肯定是2*(n-1),所以我们要特殊处理割点的情况。于是呢,我就把割点的相临点全部跑了一把bfs找该组有几个点,然后 阅读全文
摘要:
关于建边,如果需要求最小值(即最长路),一开始的话add(v,u,-w);另外如果xi-xj<=k,那么建边(j,i,k)这个样子 推荐博客:https://blog.csdn.net/consciousman/article/details/53812818 洛谷P5960:https://www 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P3436 题目大意:给你n个点(第n+1个点为最终点)和m条边,问你从1~n个点走到第n+1个点的不同路线的数量(这里规定路线中但凡有一条不一样,那么这就是不同路线) 题目陷阱:我们需要考虑对于重边和自环的处理。 题目解法 阅读全文
摘要:
感谢博主:https://www.luogu.com.cn/blog/116113X/solution-p2542 题意:略: 错误解法:这个题我一开始想的是持续动态更新Tarjan双联通缩点后找桥,但是显然从理论上来说复杂度过不去,所以考虑更换思路 正确解法:这个时候我去搜了一下题解,感觉这个题很 阅读全文
摘要:
题目链接:https://www.luogu.com.cn/problem/P4742 思路:这个其实还是很简单的吧,为什么我会单独拿出来写一个博客呢?是因为这里的记忆化搜索在日后会对我有所启发吧。整体思路很简单:就是Tarjan强联通缩点后重建新图。然后在新图上跑dfs记忆化搜索。 #includ 阅读全文
摘要:
前言:树上启发式合并(DSU on Tree),是一个在O(nlogn) 时间内解决许多树上问题的有力算法,其对于树上离线问题的处理速度大于等于其他的算法,且更容易理解(个人认为处理与子树的关系牵涉很多)。具体思路大概就是先像树链剖分那样找到每个结点的重儿子,然后把所有轻儿子的贡献合并于重儿子(比较 阅读全文
摘要:
题目链接:https://ac.nowcoder.com/acm/contest/4010/E 题目分析: 错误解法:看一眼就知道要用set,于是我一开始非常莽的跑了一发O(n*n*logn)的假算法,过了70%的数据,就是对于每次操作,新添加的树合并到重儿子上,合并完之后,用vector把set里 阅读全文
摘要:
1.模板题 洛谷P3806 注意对limit加限制<=1e7,不然会RE #include<bits/stdc++.h> #define ll long long #define rep(i,a,n) for(int i=a;i<=n;i++) #define per(i,n,a) for(int 阅读全文
摘要:
题意:给你n,m;n条平行于y轴的线段,输入3个点表示2个坐标;m条平行于x轴的线段,输入3个点表示2个坐标;起点在(0,0)问把起点包裹起来所形成的图形的面积。 题解:二维离散化,把整个图形切割成一块一块的并看做成点(共(n+1)*(m+1)个点,显然最外层的点权为INF),然后从起点开始bfs, 阅读全文