tarjan
文章平均质量分 54
SC.ldxcaicai
我很菜=_=
展开
-
2018.09.23 关键网线(tarjan)
描述给出一个无向连通图,即在任一个点对间存在路径。有的点提供服务a, 有的点提供服务b 。同一个点可能有两种服务类型。每个点必须与提供2种服务的点连通。如果一个边断掉,就可能出现有些点不能被服务到,那么这条边就称为关键边。你的任务是找出关键边数量以及每条关键边。输入第一行是整数N,M,K,L (1<=N<=100000, 1<=M<=1000000, 1<=K&...原创 2018-09-23 16:37:47 · 231 阅读 · 0 评论 -
2018.09.15[POI2008]BLO-Blockade(割点)
描述There are exactly nn towns in Byteotia. Some towns are connected by bidirectional roads. There are no crossroads outside towns, though there may be bridges, tunnels and flyovers. Each pair of to...原创 2018-09-15 00:42:45 · 127 阅读 · 0 评论 -
2018.09.15 poj2117Electricity(割点)
传送门 其实求一个图删除一个点之后,联通块最多有多少。 直接tarjan求割点更新答案就行了。 但注意原图不一定连通。 代码:#include<iostream>#include<cstring>#include<cstdio>#include<vector>#define N 10005using namespace st...原创 2018-09-15 01:25:54 · 251 阅读 · 0 评论 -
2018.09.20 atcoder Painting Graphs with AtCoDeer(tarjan+polya)
传送门一道思维题。如果没有环那么对答案有k的贡献。如果恰为一个环,可以用polya求贡献。如果是一个有多个环重叠的双联通的话,直接转化为组合数问题(可以证明只要每种颜色被选取的次数相同一定可以在进行若干次交换之后变成一样的),相当于选一个值域在[1,k][1,k][1,k]中的单调不下降子序列的个数。这个跟bzoj4403求法是相同的。对于序列中的每一个元素的值加上它自己的下标就转化成...原创 2018-09-20 21:13:06 · 287 阅读 · 0 评论 -
2018.10.04 NOIP模拟 航班(tarjan+树形dp)
描述L因为业务繁忙,经常会到处出差。因为他是航空公司的优质客户,于是某个航空公司给了他一个优惠券。他可以利用这个优惠券在任何一个国家内的任意城市间免费旅行,当他的路线跨国才会产生费用。L有一个航空公司的价格表与航线。而且每个城市出发都能到所有的城市,2个城市间可能有不止一个航班,一个国家内的2个城市间一定有不同的路线,但是不同国家的城市间只有一条路线。L想知道从每个城市出发到产生费用最多的城市...原创 2018-10-11 23:44:21 · 155 阅读 · 0 评论 -
2018.09.27 网络协议(tarjan)
描述一些学校连接在一个计算机网络上。学校之间存在软件支援协议。每个学校都有它应支援的学校名单(学校 a 支援学校 b ,并不表示学校 b 一定支援学校 a )。当某校获得一个新软件时,无论是直接得到还是网络得到,该校都应立即将这个软件通过网络传送给它应支援的学校。因此,一个新软件若想让所有连接在网络上的学校都能使用,只需将其提供给一些学校即可。任务请编一个程序,根据学校间支援协议(各个学校的...原创 2018-09-27 14:59:36 · 394 阅读 · 0 评论 -
2018.11.06 bzoj1093: [ZJOI2007]最大半连通子图(缩点+拓扑排序)
传送门先将原图缩点,缩掉之后的点权就是连通块大小。然后用拓扑排序统计最长链数就行了。自己yyyyyy了一下一个好一点的统计方法。把所有缩了之后的点都连向一个虚点。然后再跑拓扑,这样最后虚点的答案就是要求的。代码:#include<bits/stdc++.h>using namespace std;inline int read(){ int ans=0; char...原创 2018-11-06 12:09:15 · 153 阅读 · 1 评论 -
2018.11.09 codeforces487E. Tourists(tarjan+树链剖分)
传送门先把边双连通分量用圆方树一样的方法缩点,然后把新建的树树剖维护。注意对于边双连通分量需要维护动态最小值,可以用multisetmultisetmultiset。代码:#include<bits/stdc++.h>#define lc (p<<1)#define rc (p<<1|1)#define mid (T[p].l+T[p].r>...原创 2018-11-09 21:27:39 · 1093 阅读 · 0 评论