「CF555E」 Case of Computer Network】的更多相关文章

「CF555E」 Case of Computer Network 传送门 又是给边定向的题目(马上想到欧拉回路) 然而这个题没有对度数的限制,你想歪了. 然后又开始想一个类似于匈牙利的算法:我先跑,如果遇到要占用这条边的,我就把原来的去掉这条边试试能不能走其他路,然后这样做一遍. 这可能能够解决 \(n\) 比较小的时候的问题? 然而这题 \(n,m\le 2\times 10^5\). 然后又想先整出他的 \(\texttt{DFS}\) 树,然后再暴力改发现完全方向错了. 事实上一个边双连…
\(\mathcal{Description}\)   Link.   给定 \(n\) 个点 \(m\) 条边的无向图,判断是否有给每条边定向的方案,使得 \(q\) 组有序点对 \((s,t)\) 都有 \(s\) 可达 \(t\).   \(n,m,q\le2\times10^5\). \(\mathcal{Solution}\)   首先,对于原图中的边双,显然是可以让它们互相可达的,考虑把边双缩点.   此后,图变成了一片森林.单独考虑一棵树,从 \(s\) 到 \(t\) 的有向路径…
[Codeforces 555E]Case of Computer Network(Tarjan求边-双连通分量+树上差分) 题面 给出一个无向图,以及q条有向路径.问是否存在一种给边定向的方案,使得这q条路径都能被满足.(如果有一条边是从a->b),而经过它的路径是从b->a,那么久不满足).只需要判断,不用输出方案. 分析 对于一个有向环,显然它可以允许各个方向的路径通过.所以我们只要把无向图里的边-双联通分量建成环,然后就不用考虑了.影响答案的只有桥. 所以我们求出所有桥,然后缩点,把图…
Andrewid the Android is a galaxy-known detective. Now he is preparing a defense against a possible attack by hackers on a major computer network. In this network are n vertices, some pairs of vertices are connected by m undirected channels. It is pla…
题面:https://www.luogu.com.cn/problem/CF555E 题意:给定一张\(n\)个点\(m\)条边的无向图. 给定\(q\)组有向点对\((s,t)\). 询问是否存在使得所有\(s\)都能到达\(t\)的无向图中每条边的定向方案. n,m,q \(\leq\) 2e5 题解: 看到这种关于无向图连通性的问题,我们可以想到边双. 如果两点在边双中,我们可以将边双里的边定向为一些环, 这样这些点一定是可以到达的. 考虑边双缩点,将整张图缩成一个森林. 接下来,对于每对…
题目传送门 题目大意 给出一个\(n\)个点\(m\)条边的无向图,有\(q\)次有向点对\((s,t)\),问是否存在一种方法定向每条边使得每个点对可以\(s\to t\). \(n,m,q\le 2\times 10^5\) 思路 首先我们可以发现,一个边双连通分量里面肯定可以满足,因为任意两点之间都有两条及以上路径,于是可以一条过去,一条回来.于是,我们就可以先双连通分量缩点一下. 接着我们发现缩点完之后一定是个森林,因为如果存在环的话一定还可以缩点.那我们就可以用树上差分解决这个问题了.…
分析 一个连通块内的肯定不影响 于是我们先缩点 之后对于每个路径 向上向下分别开一个差分数组 如果两个数组同时有值则不合法 代码 #include<bits/stdc++.h> using namespace std; ],s[],t[],dfn[],low[],]; ],nxt[],to[],ano[]; ],d2[],dep[],pr[][]; ],vis[],vis2[]; vector<]; stack<int>a; inline int sf(int x){retu…
写一份赏心悦目的工程文档,是很困难的事情.若想写得完善,不仅得用对工具(use the right tools),注重文笔,还得投入大把时间,真心是一件难度颇高的事情.但,若是真写好了,也是善莫大焉:既可让人明白「为何如此设计」,即「知其然更知其所以然」:也能剥离一些琐碎的细节,让更多没那么多时间与精力.或者背景知识不足的朋友,对核心方法和思路,多一点理解,即,给人提供一种「纲举目张提纲挈领抽丝剥茧」的可能性. 机缘巧合,俺今天就决定抛砖引玉,写一篇不那么好的工程文档.也期望对本文话题感兴趣的朋…
「CF1023F」Mobile Phone Network 传送门 直接钦定那 \(k\) 条边在最小生成树中,然后把最小生成树树剖一下. 每条其它边的效果就是把该边端点路径上的边的权对该边边权取 \(\min\). 不会区间取 \(\min\) 的看这里. 参考代码: #include <algorithm> #include <cstdio> #define rg register #define file(x) freopen(x".in", "…
❝ 文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) ❞ 单体式应用程序 与微服务相对的另一个概念是传统的「单体式应用程序」( Monolithic application ),单体式应用内部包含了所有需要的服务.而且各个服务功能模块有很强的耦合性,也就是相互依赖彼此,很难拆分和扩容. 说在做的各位都写过单体程序,大家都没意见吧?给大家举个栗子,刚开始写代码你写的helloworld程序就是单体程序,一个程序包含所有…