图论
wly127
这个作者很懒,什么都没留下…
展开
-
[JSOI2008]星球大战————并查集+思维
题解:本题主要考查并查集。简要题意:nnn个点mmm条边,整数kkk,表示将删除的点的数。求出每一次删除之后连通块的个数。1.并查集:因为题目要求删除之后连通块的个数,想到要用并查集。可是并查集删除操作实现起来很难时间复杂度会很高,怎么办?所以我们要使用逆向思维!把删除转换成连接,从后往前处理。记录点与点之间是否联通,联通且没有被删除就连上。再恢复点再判断。接下来就是并查集判断联通块了。代码...原创 2019-12-15 13:15:21 · 124 阅读 · 0 评论 -
CSP-S2019 括号树————栈+前缀和+dfs+树
题解:本题主要考察栈和dfs+树。简要题意:一颗树的每个结点上有一个括号,可能是 ((( 或 )))。sis_isi是个括号串,但不一定是合法括号串,sis_isi中有多少个互不相同的子串是合法括号串。sis_isi共有kik_iki个不同子串是合法括号串, 你只需要告诉小 Q 所有i×kii×k_ii×ki的异或和。1.栈+前缀和:首先我们看题,求合法的括号子串。我们就可以用栈来存...原创 2019-11-20 22:07:01 · 748 阅读 · 0 评论 -
P1462 通往奥格瑞玛的道路————最短路+二分
题解:本题主要考察最短路+二分简要题意:有nnn个城市,mmm条道路,通过城市iii需要aia_iai的钱,边有边权,先在给出限制bbb,可以到达nnn点且通过的边权不超过bbb的情况下,经过的所有城市中最多的一次收取的费用的最小值是多少。1.最短路+二分:首先语文要学好,我看了蛮久才明白题意,其实是要最小化经过点权的最大值!知道后我们就可以二分了,二分通过城市钱的最大值,如果有一点的点权...原创 2019-11-08 19:27:44 · 220 阅读 · 0 评论 -
[NOI2002]银河英雄传说————并查集+前缀和
题解:本题主要考察并查集。简要题意:有TTT条指令,有两种操作:MMM指令,将第iii号所在的队列,接至第jjj号战舰所在的战舰队列的尾部CCC指令,第iii号战舰与第jjj号战舰当前是否在同一列中,如果在同一列中,那么它们之间布置有多少战舰。1.并查集+前缀和:用并查集来合并区间,记录区间战舰数量。求两个点的距离的问题,便想到用前缀和来实现:front[i]front[i]front[...原创 2019-11-07 20:01:49 · 262 阅读 · 0 评论 -
P1111修复公路————最小生成树/并查集
题解:本题主要考察最小生成树/并查集。简要题意:nnn个村庄,mmm条双向道路,并告诉你什么时候能修完这条公路。求早什么时候任意两个村庄能够通车,如果不能则输出"-1".1.最小生成树/并查集:较基础的最小生成树,接着根据时间排序,注意答案记录的是最大值。代码如下:#include<iostream>#include<algorithm>#include<...原创 2019-11-04 20:15:23 · 185 阅读 · 0 评论 -
NOIp提高组2018 旅行————基环树+搜索
题解:本题主要考查基环树+搜索。简要题意:nnn个城市之间有mmm条双向道路,小Y每到达一个新的城市(包括起点)时,将它的编号记录下来。形成一个长度为nnn的序列。求这个序列的字典序最小。对于100%100\%100%的数据和所有样例,1≤n≤50001≤n≤50001≤n≤5000且m=n−1m=n−1m=n−1或m=nm=nm=n。1.对于60%60\%60%的数据:我们注意到m=n−1...原创 2019-11-03 18:44:31 · 192 阅读 · 0 评论 -
洛谷月赛 小C与桌游————拓扑排序+贪心+优先队列优化
题解:本题主要考查拓扑排序+贪心+优先队列优化。简要题意:nnn个点,mmm条边的有向无环图,求拓扑序的前缀最大值最多和最少。1.拓扑排序+贪心:我们发现这道题和拓扑排序有关,知道了这一点,问题就解决了大半。对于求最大的,我们可以贪心的取编号最小的入度相同的点。但对于求最小的,就不能直接贪心取取编号最大的入度相同的点,大部分人(包括我)都是这样错的!因为这样忽略了较小的点!所以我们讨论一下:...原创 2019-10-28 16:59:02 · 200 阅读 · 0 评论 -
NOIp提高组 2009 最优贸易————双向SPFA+邻接矩阵
题解:本题主要考查双向SPFA+邻接矩阵。简要题意:1−n1-n1−n个城市,有mmm条道路有点单向有的双向,每个城市商品价格为aia_iai,商人从111到nnn,在不同的城市购进卖出求他最多能赚取多少利润。1.双向SPFA:本题可以双向跑SPFA,正反双向建图。一个找商品价格最小的,一个找商品价格最大的,再判断它们能否从111到nnn,注意细节!代码如下:#include<io...原创 2019-10-25 21:15:24 · 134 阅读 · 0 评论 -
洛谷P1119 灾后重建————floyd,dp
题解:本题主要考查floyd,dp。简要题意:n个村庄,0—n-1,有m条双向公路分别tit_iti天建好。有Q个询问,第t天,从村庄a到村庄b的最短路径长度为多少。1.floyd,dp:这题道非常好的Floyd题,考差了Floyd的本质是DP。Floyd的思想是从i号顶点到j号顶点只经过前k号点的最短路程,正好与本题时间相同。代码如下:#include<iostream>...原创 2019-08-30 15:28:29 · 160 阅读 · 0 评论 -
NOIp2015 信息传递————图论,并查集
题解:本题主要考查图论,并查集。简要题意:有向图求最小环。1.图论,并查集:简单的并查集求最小环,如果有两个点祖先相同,就可以构成一个环,长度为两个点到祖先节点长度之和+1。代码如下:#include<iostream>using namespace std;int f[345210],d[345210];int n,m,minn=999999;int find(int...原创 2019-08-18 15:00:19 · 593 阅读 · 0 评论 -
Noip2014 寻找道路————最短路+搜索
题解:本题主要考查最短路+搜索简要题意:一个有向图边都为1,给定起点和终点,找一条从起点到终点的最短路径。1.搜索:本题会有不与终点相连的点,就要删除它们,以及与他们连一条边的点,就在图上遍历标记。(注意:不能直接消去第一次打上的标记,第二次删除标记时是可能有后效性的)2.最短路:跳过没有标记的点跑一边最短路即可代码如下:#include<iostream>#include...原创 2019-08-16 17:49:59 · 172 阅读 · 0 评论 -
Noip2013 货车运输————最小生成树+LCA
题解:本题主要考查最小生成树+LCA简要题意:有n座城市,1—n,城市之间有m 条双向道路。每一条道路有限重。现在有 q辆货车在运输货物, 每辆车在不超过车辆限重的情况下,最多能运多重的货物。1.最小生成树:其实是求最大生成树,把较小的边去掉。2.LCA:求出两个节点之间最小边权的最大值,就用LCA。本题思路不难,但实现有点难。代码如下:#include<algorithm>...原创 2019-08-12 22:40:39 · 375 阅读 · 0 评论 -
POJ3259 Wormholes————Bellman-Ford
题解:本题主要考查Bellman-Ford求负环。简要题意:N个点的图,2M条正权双向边,W条负权单向边。问图中是否存在负环?1.Bellman-Ford:求负环用Bellman-Ford就行了,加上优化没有松弛则提前退出循环,减少时间。代码如下:#include<iostream>#include<cstring>using namespace std;st...原创 2019-08-20 19:01:44 · 116 阅读 · 0 评论 -
洛谷P2746 Network of school————tarjan缩点+强连通分量
题解:本题主要考查tarjian缩点+强连通分量。简要题意:在缩点后的图中,子任务A:求入度为0的点的个数,子任务B:求入度为0的点数与出度为0的点的较大值。1.tarjan缩点:缩点就是tarjan求模板,一个强连通分块里面可以互相到达,那么可以当成一个点处理。本题最大难点是理解题意,把题目背景转化为计算机语音。代码如下:#include<iostream>using na...原创 2019-08-19 21:59:57 · 195 阅读 · 0 评论