
图论
文章平均质量分 69
TA201314
这个作者很懒,什么都没留下…
展开
-
最优贸易解题报告
----------------------------最优贸易是一个n=10^5级的稀疏图,求max{0,w[j]-w[i]}(g[1][i]&&g[i][j]&&g[j][n]).---------------------------- 一、SPFA的功能与理解,不能仅仅局限于求最短路,而可以是图中某点到图中所有点的某种关系。比如说本题中可以用来求某点到1的所有路径中的Wmax。 二、DF原创 2014-11-05 16:18:03 · 2018 阅读 · 0 评论 -
[HNOI2012]矿场搭建 解题报告
第一次听说点双连通分量这个概念。。 点双连通分量是说这个连通分量中任意两个点之间都存在两条不经过同一个点的路径。 点双连通分量比边双连通分量要麻烦很多的问题在于不能缩点,因为两个点双连通分量可能会由一个割点连起来,当然也可能由一条桥边连起来,这样的话就比较麻烦。这个题的话,假如不存在没有割点的点双连通分量。对于那种只有1个割点的点双连通分量,假如我把这个割点删掉,那么它必须是要从内部找一个点的;原创 2016-11-02 18:53:29 · 1440 阅读 · 0 评论 -
关于无向图中环的研究
1、非生成树边必定是返祖边。 证明:设边(u,v),depth(u)≤depth(v)(u,v),depth(u)\le depth(v)假如u不是v的祖先,那么v必然会dfs到u使得u是v的儿子,便与depth(u)≤depth(v)depth(u)\le depth(v)矛盾。 2、对于链\子树\单点询问,动态边双联通分量可以直接等价成生成树中的lca x,把其他点清零。(bzoj2959长原创 2016-03-23 17:51:04 · 1193 阅读 · 0 评论 -
[NOIP2013]车站分级 解题报告
妈蛋这道普及组水(神)题搞了我很久。 一、 首先一个非常显然的事情就是每个火车告诉了站与站之间的等级关系,所以拓扑求最长路。 但是发现暴力建边的话最坏可以达到500*500,所以时间复杂度有O(MN2)≈2.5∗108O(MN^2)≈2.5*10^8,常数相当小。。数据水成狗,所以绝对可以过的。 二、 所以我就想到了bitset,把每辆火车做成一个长N的布尔向量,经过为1,不经过为0,第一原创 2015-06-27 10:44:13 · 3234 阅读 · 2 评论 -
[POI2000]啤酒厂选址
这道题思路很简单,但是有很多蛋疼的细节需要注意。 一个比较笨的方法是从0到n-1扫描,把环分成两段,一段是顺时针走来的,一段是逆时针走来的,它们在当前所选的啤酒厂处相交,然后维护一下这两段。那么实际上我们是在维护这两段的权重、长度和裂开点。但是注意到这两段都是可以为空的,甚至在转移的时候还可能出现负数,不过实际上这都是没有关系的! 上一中方法实现需要辅以链表,一个更好的方法是展环为链,这样的话原创 2015-04-17 07:45:22 · 5280 阅读 · 1 评论 -
20150408参赛总结
这场比赛做的相当蛋疼啊。 ①首先是C题写残了,由于感觉太水,所以写得很快。没有考虑清楚++i应该放在什么地方,导致过了样例。。样例有9分。。 ②其次是B题题面错了。。不过虽然B题题面错了,我还是没有想出标算,而是搞出一个10^8的暴力,然后用bitset乱搞了一下。。 标算的话,怎么说呢;其实也挺简单的,但确实没有想到。感觉就像是刚刚做的动态最短路;既然只能选两条航线,那么就搞一个ds,一个原创 2015-04-09 11:16:38 · 730 阅读 · 0 评论 -
SDOI2015游记
Day1 今天的遗憾主要在于T1,没有想到2个块里可能会有两种不等价的交换,其实这种计数问题,应该要想到会有不等价的情况的。。但是我还是没想到,导致白丢了15分。 但是反过来想,其实即使我想到了不等价的情况,实际上我也觉得我搞不出正解的,我并没有想到可以用搜索来解决这个问题,虽然它在知道题解之后看起来很显然了。 那么,作为总结的话,是要告诉自己以后该怎么避免这种情况的发生。原创 2015-04-13 18:52:29 · 1972 阅读 · 5 评论 -
[USACO 5.4.2 tour]解题报告
这道题一开始写的费用流,分析时间复杂度的话,差不多O(m)吧,觉得数据这么小很奇怪。 后来看了题解,原来数据小是为DP准备的;想了想DP的话觉得没什么思路,但是看了题解以后却恍然大悟!像这种两个人走的DP,往往是要把两个状态集乘起来。最经典的莫过于传纸条,然后寒假里做了一道高斯消元的题亦然如此。可见这种思想是非常重要的,以后做题的时候一定要有这个意识。 代码(费用流): #include #原创 2015-03-15 16:49:38 · 838 阅读 · 0 评论 -
刺杀大使 解题报告
这道题应该说是非常好的一道题,题意大致是在一个矩阵中寻找一条从最下面一行到最上面一行经过最大的数最小的一条路。时限是2s。 看到这题第一直觉DP,但发现DP方程可以互相转移,于是DP变成了图论。。于是改成了Dijkstra,算一算时间复杂度O(mnlog(mn))≈8*10^7,正好2s差不多;就写开了。 #include using namespace std; #include #incl原创 2015-01-03 13:52:48 · 1252 阅读 · 0 评论 -
tc-srm704-div1-1000 解题报告
题意:构造一个点数不超过20无重边无自环的有向图,节点编号从0到n-1,使得从0到n-1的哈密顿路径数量恰好为k。感觉完全没有思路。。不知道怎么构造。 去看了下别人的代码,原来可以做成1<-2<-…<-18一条路径,然后1-18都向编号比它大的节点连边。这样的话往回走就只有唯一的路径,所以假如说我当前在i,走到了j,j>i,那么就需要立刻从j到j-1直到i+1,然后再往后走。这样就相当于每个节点有原创 2017-01-04 10:48:43 · 1217 阅读 · 0 评论