Description Siruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定, 在每个路口都设立了一个 Siruser i 银行的 ATM 取款机。令人奇怪的是,Siruseri 的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。Bandit ji 计划实施 Siruseri ...
刚做了两道tarjan缩点的题,新学的算法总结一下。 推荐题:(难度单调递增) [HAOI2006]受欢迎的牛 [USACO5.3]校园网Network of Schools 间谍网络 [APIO2009]抢掠计划 这里不教tarjan,要学的找别的博客吧。 总结:tarjan 简单来说 算法过程 ...
分类:
其他好文 时间:
2018-09-17 20:32:11
阅读次数:
192
不爽。 为什么tarjan能爆栈啊 十分显然的缩点,给缩点之后的点连上权值为后一个点集权值的有向边,然后spfa跑最长路。 注意一开始$dis_{st}$应该等于$st$这个集合的权值。 时间复杂度$O(能过)$。 非递归版的tarjan可以学习一下。 Code: #include <cstdio> ...
/* 缩点加上最长路 应该用拓扑序列的 不想写 spfa跑一下吧 */ #include #include #include #include #include #define M 500200 #define ll long long using namespace std; int be[M],... ...
这题好难啊! 我好菜啊! 思路:对于最多线段不相交, 我们可以按左端点sort之后,贪心取。 但是这个题要求选取的线段排序之后序号的字典序最小。 那么我们如果按序号贪心地从大往小往里放, 那么对于第k个线段,我们考虑放进去之后是能是还能保证所取的线段个数能 达到最大, 我们考虑函数cal(l, r) ...
"Portal" Description 给出一个$n\times m(n,m\leq1500)$的矩阵,从中选出$3$个互不相交的$k\times k$方阵,使得被选出的数的和最大。 Solution 奇怪做法... 三个矩形分别在三个部分中,把矩形划分成三部分只有这六种。首先搞出$s[i][j] ...
https://zybuluo.com/ysner/note/1144701 题面 给出一个$n×m$的矩阵。请在其中选择$3$个互不相交的,大小恰为$k×k$ 的子矩阵,使得子矩阵的权值和最大。 $n\leq1500,m\leq1500$ 解析 这题和[CJOJ2501][1]很像呢。。。 看到题 ...
参考:https://blog.csdn.net/FAreStorm/article/details/49200383 没有技术含量但是难想难写,枚举情况图详见参考blog~~懒得画了~~ cpp include include include using namespace std; const ...
明明优化了spfa还是好慢…… 因为只能取一次值,所以先tarjan缩点,把一个scc的点权和加起来作为新点的点权,然后建立新图。在新图上跑spfa最长路,最后把酒吧点的dis取个max就是答案。 ...
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 tarjan强连通缩点一下。 然后把缩点之后,每个点的钱的数累加起来。 然后从S出发 开始一边做bfs一遍做dp. 最后输出有酒吧的点的dp值中的最大值。 【代码】 cpp / n个点,m条有向边. 把有向图G的环进行缩点; 缩 ...