【noip暑假tarjan专题】】的更多相关文章

%%%奎老师 A:傻逼缩点...傻逼编译器卡我next... B:就是这道奎老师没讲清楚的题,明明小朋友们都一A嘛,,,明明细节有很多嘛,,,怎么都这么熟练啊. C:本质还是B,换了个马甲而已. D:又是缩点,缩完点之后每个入度为1的强连通分量找一下最小值就好啦... I:这就是在求桥了,ok现在来总结一下,有向图中缩点叫强连通分量,求桥与割点,LCA都是在无向图中.然后我又求错了,我在求桥的时候直接算了权值差....看了网上题解,还是乖乖缩点+树形dp吧....QAQ[这里做了双联通之后,就不…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 树链剖分 https://oi-wiki.org/graph/heavy-light-decomposition/ qRange:将树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值都加上 \(val\) updRange:求树从 \(x\) 到 \(y\) 结点最短路径上所有节点的值之和 qSon:将以 \(x\) 为根节点的子树内所有节点值都加上 \(val\)…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 最短路 Floyd 基本思路:枚举所有点与点的中点,如果从中点走最短,更新两点间距离值.时间复杂度 \(O(V^3 )\). int n, m, f[N][N]; memset(f, 0x3f, sizeof(f)); for (int i=1, a, b, w; i<=m; i++) { scanf("%d%d%d", &a, &b, &…
系列索引: NOIp 图论算法专题总结 (1) NOIp 图论算法专题总结 (2) NOIp 图论算法专题总结 (3) 网络流 概念 1 容量网络(capacity network)是一个有向图,图的边 \((u, v)\) 有非负的权 \(c(u, v)\),被称为容量(capacity). 图中有一个被称为源(source)的节点和一个被称为汇(sink)的节点.图中每条边称为弧(arc). 实际通过每条边的流量记为 \(f(u, v)\). 残量网络(residual network)是一…
POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少入度为0的个数因为一定要从这些节点出发 第二个就是因为图本身就是联通的,设入度为0的点有n个,出度为0的点有m个, 那么入度的编号为N0,N1,N2,N3...Nn,出度编号为M0,M1,M2...Mm  那么连N0->M0->N1->M1->N2->M3.这样形成环啦那连到Mi…
前排Orz tarjan tarjan算法在图的连通性方面有非常多的应用,dfn和low数组真是奥妙重重(并没有很搞懂反正背就完事了) 有向图强连通分量 #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<stack> using namespace std; struct edge{ int v,next; }a[]; stack<i…
题目链接  请猛戳~ Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m <…
每次开一个坑都像是重新被碾压的预感 最近的新闻,以前很喜欢乔任梁的<复活>...然后他就死了...感觉我再多愁善感一点的话...就要悲伤逆流成河了吧... Contest 09/24(乐滋滋的场,良心场)100+100+0 T1:这题做得很羞愧...因为我根本证不出那个结论..猜的.. T2:这题做得很羞愧...因为听到了隔壁GG讲了伸头缩尾法... T3:因为少了一个半小时就没交.yy了一个跟正解差不多的想法...只是把枚举K去掉了,但是这样就MLE了...我口胡一下..不写了因为懒得评测.…
NOIP赛前集训备忘录(含每日考试总结) 标签: 有用的东西~(≧▽≦)/~啦啦啦 阅读体验:https://zybuluo.com/Junlier/note/1279194 考试每日总结(这个东西是中途开始的) 看到别人的博客都写了这东西,发现自己连前几天考的东西都快不记得了,赶紧备忘录一下 然后博主肯定会谨慎不泄题的...毕竟是校内资料嘛 我有一个宏伟的计划:考进联考\(Rank\)前\(10\)(没跟你开玩笑,虽然博主很菜) 2018.10.16 \(T1\) 第一眼还以为是个傻逼智障题,…
About Me NOIp 数据结构专题总结 NOIp 图论算法专题总结 NOIp 基础数论知识点总结 NOIp 数学知识点总结 搜索算法总结 (不包含朴素 DFS, BFS) 位运算 字符串算法总结 技♂巧: 调试 & 常数优化 对拍 & 随机数生成 数据结构: 高精度模板 C++ STL 高级容器 字符串使用方法整理: 字符串(一):char 数组 字符串(二):string C++ 运算符优先级顺序表 (最新/完整) 更高级的 Collections:<省选前模板整理>…
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath> #include <iostream> using namespace std; #define MAXN 100010 struct node { int a,b,c; }ans[MAXN]; int main() { int R, G; scanf("%d%d",&…
一道好的NOIp题目,在赛场上总能用许多算法A掉.比如这道和关押罪犯. 题目传送门 法一:tarjan在有向图中跑最小环 有人从别人口中得知自己信息,等效于出现了一个环.于是 这就变成了一个有向图tarjan强连通分量的板子题. #include<cstdio> #include<algorithm> #include<stack> #define maxn 200090 using namespace std; ,dfs_clock,scc_cnt,tong[maxn…
系列索引: NOIp 数据结构专题总结 (1) NOIp 数据结构专题总结 (2) STL structure STL 在 OI 中的运用:https://oi.men.ci/stl-in-oi/ std::vector #include <vector> std::vector<type> v; v.push_back(x); v.pop_back(); int *a = new int[N]; std::bitset #include <bitset> std::b…
系列索引: NOIp 数据结构专题总结 (1) NOIp 数据结构专题总结 (2) 分块 阅:<「分块」数列分块入门 1-9 by hzwer> 树状数组 Binary Indexed Tree 时间复杂度 每次操作 \(O(\log n)\),空间复杂度 \(O(n)\). Pure 下标从 1 开始. ll t[N]; inline int lowbit(int x) {return x&-x; } inline void update(int x, ll val) { for (…
题目描述 给你一张图,询问当删去某一条边时,起点到终点最短路是否改变. 输入格式 第一行输入两个正整数,分别表示点数和边数.第二行输入两个正整数,起点标号为,终点标号为.接下来行,每行三个整数,表示有一条连接的道路,长度为.接下来一个整数,表示询问的个数.最后行,每行一个正整数,表示询问若删去第条边,到最短路是否改变. 输出格式 输出行.对于每一个询问,到最短路没有改变则输出一行一个字符串,否则输出. 输入样例 8 11 1 8 1 2 3 1 3 1 2 3 1 2 4 5 2 5 1 4 5…
信息传递 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.luogu.org/problem/show?pid=2661 Description 有n个同学(编号为1到n)正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为i的同学的信息传递对象是编号为Ti同学. 游戏开始时,每人都只知道自己的生日.之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里 获…
这里学习一下DP的正确姿势. 也为了ZJOI2019去水一下做一些准备 题解就随便写写啦. 后续还是会有专题练习和综合练习的. P1005 矩阵取数游戏 给出$n \times m$矩阵每次在每一行取n个数,一共取m次, 第i次取数的权值是$2^i$,给出一个取数的顺序,最大化取完所有数的贡献和. 输出贡献和. 对于100%的数据$1\leq n,m \leq 80,0<a_{i,j} \leq 10^3 $ 需要使用高精度,考虑一个DP,$f[i][j][k]$表示第i行,共取j次,其中k次在…
题目大意 给定A串,选择A串的前lB个字符作为B串,再在B串后增加一个字符,问最长的相等的A串前缀和B串的后缀. Solution 1(KMP) 用1个奇怪的字符连接A串和B串,再用KMP求最长公共前后缀. Solution 2(Hash) hash A串的前缀和B的后缀,然后for去比较,取最大的相等的一个 题目大意 找出图上所有点,当它被删掉后使得1和n不连通. 因为这个点删掉后能够使1和n不在同一个联通块内,所以这个点一定是割点. 但是不是所有的割点都合法.当这个点被删掉后,如何判断1和n…
似乎我搞得太复杂了? 先tarjan缩点然后dfs就行了QAQ. (我不说我被一个sb错调了半个小时....不要以为缩点后dfs就可以肆无忌惮的不加特判判vis了.. bfs的做法:减反图,然后从大到小枚举(贪心),标记即可 #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorit…
目录 一.知识概述 二.典型例题 1.[HAOI2006]受欢迎的牛 2.校园网络[[USACO]Network of Schools加强版] 三.算法分析 (一)Tarjan算法 (二)解决问题 四.课后习题 一.知识概述 在前两节内容中,大家应该已经大致了解了图论这一块的算法.今天我们要讲的是强连通分量.强连通分量是一个再OI中非常重要的算法,我们需要对强联通分量进行缩点,使得一个大的有向图变成一个有向无环图. 说了这么多,我们切入今天要讲的正题. 1.强连通&强连通图 在有向图G中,如果有…
Code: #include<cstdio> #include<cstring> #include<string> #include<stack> #include<algorithm> #include<vector> using namespace std; void setIO(string a){ freopen((a+".in").c_str(),"r",stdin); freopen…
题目大意: 各一个奇环内向森林,求每两个点对间的距离之和.无法到达则距离为-1. 分析: 首先Tarjan找出size大于1的连通分量(环),环中的边的贡献可以单独计算. 然后从入度为0的点向内dfs,直到遇见size大于1的环.记录每个点的to_size(朝向环方向有多少个节点),from_size(朝向入度为0的方向有多少个节点),还需要配合拓扑.这一步完成后, 单独的边的贡献就可以算出来了. 接下来计算单独的边与环接上的部分对环上的边的贡献增量.在上面dfs时,就可以将环上碰到的第一个点打…
题目描述 小Y和小Z好不容易有机会相见啦,可是邪恶的小H却不想让他们相见.现在有一些城市,城市之间有双向路径相连,有路径相连的城市之间可以互相到达.小H可以任意选择一条路径,然后用他的邪恶力量污染这条路径,使得它不能被通行.虽然小Y和小Z在千辛万苦之后相遇了,但小Y非常害怕.她想让小Z告诉她,他们初始在哪些点对上,小H就可以选择一条路径污染使得他们不能相见. 注意:如果有一对点之间初始的时候就不联通,也是满足条件的,需要输出这对点.这是因为本来不联通,那么删一条边,当然也不联通. 输入格式 第一…
题意转化 考虑我们对于每一对激活关系建一条有向边,则对于每一个点,其答案就是其所能到达的点数. 于是,这个问题就被我们搬到了图上,成了一个图论题. 优化建图 考虑我们每次需要将一个区间向一个区间连边. 则我们可以用线段树优化建图. 具体步骤就是,建两棵线段树,每次新建一个虚节点,然后把需要向外连边的区间在一棵线段树上向这个节点连边,并从这个节点在另一棵线段树上向应被连边的区间连边. 求解答案 建完图之后,考虑如何求答案. 首先,我们\(Tarjan\)缩点,显然一个强连通分量内的所有节点可以相互…
A 回文串的最小划分 题意:给出长度不超过1000的字符串,把它分割成若干个回文字串,求能分成的最少字串数. #include <iostream> #include <cstdio> #include <string.h> #include <string> using namespace std; ; + ; const int INF = 0x3f3f3f3f; typedef long long LL; int dp[maxn]; //根据回文串的特…
传送门 考场上自己yy了一个双连通只有40分. 然后换根dp求最长路就行了. 代码…
一.题目类型: 1.有向图的强连通分量: POJ1236 Network of Schools HDU1269 迷宫城堡 2.割点 & 割边: UESTC - 900 方老师炸弹 UVA315 Network UVA796 Critical Links HDU3394 Railway 3.无向图的边双联通分量: POJ3177 Redundant Paths HDU4612 Warm up HDU4738 Caocao's Bridges POJ3694 Network 4.无向图的点双联通分量…
目录 一.知识概述 二.典型例题 1.口袋的天空 三.算法分析 (一)Prim算法 (二)Kruskal 四.算法应用 1.[NOIP2013]货车运输 五.算法拓展 1977: [BeiJing2010组队] 次小生成树 Tree 一.知识概述 在上一节中,我们讲了最短路径问题.而这一节,我们要讲和最短路径相关的一个知识点:生成树. 1.什么是生成树呢? • 对于一个n个点,m条边的无向图,我们需要求出它的生成树,即边为n-1条且均属于m条边的无环连通图. • 我们一般有最小生成树和最大生成树…
一.知识概述 今天我们要复习的内容是图论中的最短路算法,我们在这里讲3种最短路求法,分别是:floyd,dijkstra,spfa. 那么我们从几道例题来切入今天讲解的算法. 二.典型例题 1.热浪 题目描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer John此时以先天下之忧而忧,后天下之乐而乐的精神,身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦. FJ已…
Phantom •题目名称: phantom •时间限制:1 秒 •空间限制:256 MiB 题目描写叙述 在一个无限大的棋盘上.排列着 n * n 枚棋子,形成一个 n 行 n 列的方阵.棋子能够横向或者纵向移动,移动方式是越过一个相邻的棋子,落入同一方向上的下一个空暇的格子里,同一时候.移除被越过的棋子. 如今.我们想知道,是否有可能通过若干次操作.使得棋盘上仅剩一枚棋子. 比如.当 n = 2 时,有例如以下操作方法: -. -. -. -. .OO. => -O => -O =>…