Blockade(Bzoj1123)】的更多相关文章

Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. Sample Input 5 5 1 2 2 3 1 3 3 4 4 5 Sample Output 8 8 16 14 8 [题前话] 这题真的害人不浅啊! 本蒟蒻怀着做板子题1A…
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. Sample Input 5 5 1 2 2 3 1 3 3 4 4 5 Sample Output 8 8 16 14 8   看到这道题,首先想到是的Tarjan先缩点.但是后来…
1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 970  Solved: 408[Submit][Status][Discuss] Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第…
1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 614  Solved: 235[Submit][Status] Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多…
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. Solution 求割顶的一系列操作不仅可以用来求割顶,也可以解决很多问题,比如这道题. dfs是很神奇的,对于节点u能扩展出去的v的子树是互相独立的,反向边也只会往上连. 那么对于…
Description Byteotia城市有n个 towns, m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n和m.( n<=100000 ,m<=500000 ) Output 输出n个数,其中第i个整数表示把与节点i关联的所有边去掉之后(不去掉节点i本身),无向图中有多少个有序点对(x,y),满足x和y不连通. Sample Input 5 5 1 2 2 3 1 3 3 4 4 5 Sample Ou…
无向图中,求去掉点x[1,n]后每个联通块的大小. 考虑tarjan求bcc的dfs树,对于每个点u及其儿子v,若low[v]<prv[u],则v对u的父亲联通块有贡献,否则对u的子树有贡献.每个节点记录siz[u]表示u子树内的贡献.…
删掉无向图上任意一点,请求出将会增加的不连通的点对数 将无向图联通性的问题转化到搜索树方向上考虑 如果一个点不是割点,那么删掉该点的答案很简单,就是2*(n-1) 如果点u是割点,同时u在搜索树上有t个子节点,那么删掉u点后就会出现t+2个联通分量 1.t个包含不同子节点的联通分量:每个子节点联通分量的贡献是size[son]*(n-size[son]) 2.结点u:u的贡献是(n-1) 3.剩下部分,即u子树除外其他的点形成的联通分量:这部分的贡献是n-1-sum{size[son]} 在ta…
BZOJ原题链接 洛谷原题链接 若第\(i\)个点不是割点,那么只有这个点单独形成一个连通块,其它点依旧连通,则答案为\(2\times (n-1)\). 若第\(i\)个点是割点,那么去掉这个点相关的边就会形成\(3\)种构成的连通块: 由点\(i\)本身构成. 由点\(i\)的子树(搜索树中)形成若干个连通块. 由除点\(i\)及其子树的所有其它点构成一个连通块. 于是我们可以在用\(tarjan\)找割点的过程中计算搜索树中每棵子树的大小,并统计答案即可. #include<cstdio>…
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. Sample Input 5 5 1 2 2 3 1 3 3 4 4 5 Sample Output 8 8 16 14 8 Solution 题意不清楚.点对(x,y)!=(y,x…
题目描述 Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. 输入 输入n<=100000 m<=500000及m条边 输出 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. 样例输入 5 5 1 2 2 3 1 3 3 4 4 5 样例输出 8 8 16 14 8 题解 DFS树 Tarjan求点双太暴力了...还是选择一个优雅一点的做法——DFS树 考虑在DFS的过程中计算删除每…
传送门 分析 我们知道对于一个割点,我们如果去掉它就会使原来的图被分为若干块,则这是我们将所有块包含的点的个数两两相乘即可,而如果不是割点则对于图的连通性没有影响.注意在最后要加上2*(n-1)表示去掉的那个点对答案产生的贡献. 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> #include<ccty…
tarjan判断割点...拿掉一个点之后,会被分成若干个联通块,用节点个数和统计一下他们相互不能到达的个数就好. ; maxm=; type edgetype=record toward,next:longint; end; var edge:..maxm] of edgetype; first,dfn,low,stack,s:..maxn] of longint; pd:..maxn] of boolean; sum:..maxn] of int64; tot,cnt,i,n,m:longin…
疫情控制 blockad 题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树, 1 号城市是首都, 也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境 城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境 城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点.但特别要注意的是, 首都是不能建立检查点的. 现在,在 H 国的一些城市中已经驻扎有军队,且一个城市可以驻扎多个军队.…
(上不了p站我要死了,侵权度娘背锅) Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. Sample Input 5 5 1 2 2 3 1 3 3 4 4 5 Sample Output 8 8 16 14 8 很明显的判割点 写…
1123: [POI2008]BLO Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2222  Solved: 1090[Submit][Status][Discuss] Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. Input 输入n<=100000 m<=500000及m条边 Output 输出n个数,代表如果…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1123 思路倒是有的,不就是个乘法原理吗,可是不会写...代码能力... 写了一堆麻麻烦烦乱七八糟的东西写不下去了,去看TJ... 原来是在 tarjan 里面就顺便算出来了啊!真是精妙!这就是构建出了一个 dfs 搜索树了呢: 码力还需多多提升... 代码如下: #include<iostream> #include<cstdio> #include<cstring&g…
#include <iostream> #include <cstring> #include <cstdio> using namespace std; typedef long long ll; ; ; int dfn[maxn], low[maxn], head[maxn]; ll ans[maxn], siz[maxn]; int n, m, tot, num, root; bool cut[maxn]; struct edge{ int to, next; }…
题目传送门 题目描述 Byteotia城市有n个towns.m条双向roads.每条road连接两个不同的towns,没有重复的road.所有towns连通. 输入格式 输入n,m及m条边. 输出格式 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. 样例 样例输入: 5 51 22 31 33 44 5 样例输出: 8816148 题解 看到这道题,应该想到缩点. 首先,如果一个点不是割点,那么把它去掉,不会影响与它无关的点对,那么,去掉它之后,减少的点对的个数即为2n-2. 如果这…
割点的好题. 联通图,难度降低.首先对于一个点,如果他不是割点,那它的贡献是2*(n-1),就是任何一个其他节点都少了正反两个数对,这个看样例可以看出来. 如果它是一个割点,去掉他以后会出现若干个联通块,而这些联通块两两之间不相连,把它们的大小两两相乘即可. 我们知道,在进行tarjan时会跑出一颗搜索树,我们直接记size[x]表示以x为根节点的子树大小,在找到一个割点时,low值大于dfn[x]的子树们各自为家,剩下的会构成另一棵大的子树.这样的话,根据(乘法结合律)原理即可得出: ans[…
*题目描述: Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 所有towns连通. *输入 输入n<=100000 m<=500000及m条边 *输出: 输出n个数,代表如果把第i个点去掉,将有多少对点不能互通. *样例输入: 5 5 1 2 2 3 1 3 3 4 4 5 *样例输出: 8 8 16 14 8 *题解: 裸的找割点.答案就是每个割点的子树的大小乘上除了子树外的点,还有子树和子树之间的对数,最后…
1.前言 正式开始的第一周的任务--把NOIP2010至NOIP2015的所有D1/2的T2/3写出暴力.共22题. 暴力顾名思义,用简单粗暴的方式解题,不以正常的思路思考.能够较好的保证正确性,但是最大的问题在于效率.搞OI这么久,每次考试也经常纠结于暴力与正解之间,其实这两者概念上本来就没有明显的界限,是一组相对概念. 下面尽可能的不提到正解,但是如果正解容易到我都能够轻松秒的话就还是说一下了. 普通的DFS/BFS搜索是暴力,但暴力不局限于此.根据向总的话,记忆化搜索亦属于暴力,名字逼格这…
[问题描述] H国有n个城市,这n个城市用n-1条双向道路相互连通构成一棵树,1号城市是首都,也是树中的根节点. H国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散到边境城市(叶子节点所表示的城市),决定动用军队在一些城市建立检查点,使得从首都到边境城市的每一条路径上都至少有一个检查点,边境城市也可以建立检查点.但特别要注意的是,首都是不能建立检查点的. 现在,在H国的一些城市中已经驻扎有军队,且一个城市可以驻扎多个军队.一支军队可以在有道路连接的城市间移动,并在除首都以外的…
Menu Main Resources Books Websites Documents Archives Community Blogs Personal Blogs Videos Related Projects OS Virtual Machine Competitors Management Tools Paas Platforms Integration Projects Monitoring Networking Continuous Integration Development…
The Brain vs Deep Learning Part I: Computational Complexity — Or Why the Singularity Is Nowhere Near July 27, 2015July 27, 2015 Tim Dettmers Deep Learning, NeuroscienceDeep Learning, dendritic spikes, high performance computing, neuroscience, singula…
2014-05-06 00:17 题目链接 原题: Given a -D matrix represents the room, obstacle and guard like the following ( is room, B->obstacle, G-> Guard): B G G B calculate the steps from a room to nearest Guard and set the matrix, like this B G G B Write the algor…
题意: 给出一颗n个节点有边权的树 和m个军队所在的位置 军队从某节点移动到相邻节点要花费边长度的时间 求最少要多少时间使得根节点(编号为1)到每个叶子的路径上最少有一支军队(根节点不能有军队) 题解: 我们可以二分答案 那么问题就转换为 在t的时间内军队能否控所有点 显然一支军队在到根节点之前 如果能继续向上走 那么这支军队能控制的点就会更多 维护bo[i]表示 从该点到所有该点子树的叶子节点路径上是否都有军队 对于每个不能走到根节点的军队 就让他尽量向上走 直到不能走为止 将该点的bo值赋为…
分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco.com> November 2003dc 2001/tcpwizard 2001/udp curryglobe 2002/tcpglobe 2002/udp#brutus 2003/tcp Brutus Serverbrutus 2003/udp Brutus Server# Johannes Sko…
题目大意 给出一棵n个节点的树,根是1,要在除根节点以外的点建立检查点,使得从每条根到叶子的路径上都至少存在一个检查点.检查点由军队来建立.初始军队的位置是给定的,移动军队走一条边需要花费这条边的权值的时间.现在要求一个方案,移动军队到某个最佳位置,使得总用时最少. [数据范围] 保证军队不会驻扎在首都.对于20%的数据,2≤ n≤ 10:对于40%的数据,2 ≤n≤50,0<w <105:对于60%的数据,2 ≤ n≤1000,0<w <106:对于80%的数据,2 ≤ n≤10…
/* 考试的时候没想出正解 也没打暴力 时间不够了 随便yy了几种情况按出现的先后顺序处理而没有贪心 的了20分 不粘了 正解是围绕首都的儿子来搞的 显然先二分答案 对于每个限定的最大时间 我们尝试着那每个军队向根节点蹦 能蹦到的记下来最靠近根的点 并记下剩下多少时间 不能蹦到的 记下能蹦到哪里 并且标记为已有军队 最后updata一下不能蹦到的 说不定可以蹦到首都的儿子 或者首都的儿子的儿子都能蹦到 这里自己脑补一下图吧 很好理解的 然后我们就有了一些需要军队驻扎的首都的儿子还有到能到首都的军…