图论
Sqwlly
有自己热爱的东西,真好。
展开
-
PAT L2-001(Dijkstra+记录路径)
L2-001. 紧急救援时间限制:200 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:陈越作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队...原创 2018-03-21 15:16:14 · 291 阅读 · 0 评论 -
牛客练习赛40 C-小A与欧拉路(树形dp | 两次dfs 求树的直径)
C-小A与欧拉路题意:求图中最短的欧拉路。题解:因为是一棵树,因此当从某一个节点遍历其子树的时候,如果还没有遍历完整个树,一定还需要再回到这个节点再去遍历其它子树,因此除了从起点到终点之间的路,其它路都被走了两次,而我们要求总的路程最短,那么我们就让从起点到终点的路最长即可,也就是树的直径。所以答案就是所有边权的两倍再减去树的直径。代码两次dfs#include<bits/st...原创 2019-02-16 10:20:11 · 304 阅读 · 0 评论 -
ACM-ICPC 2018 徐州赛区现场赛 A Rikka with Minimum Spanning Trees(假题)MST
Rikka with Minimum Spanning Trees题解:真心…无力吐槽了,首先可以说这个题目就很假。当然手撸题面给出的算法的神犇们我就不说什么了…请一定要注意题目给出的随机数据生成器,然后考虑到在unsigned&MediumSpace;&MediumSpace;long&MediumSpace;&MediumSpace;longunsigned...原创 2018-12-04 00:17:46 · 1190 阅读 · 0 评论 -
牛客国庆集训派对Day3 I Metropolis(多源多汇最短路)
Metropolis题意:ppp个点mmm条无向边,对于这ppp个点,问距离其它点最近的距离。题解:首先,如果我们考虑最暴力的方法,ppp次单源最短路。但是ppp的大小有2e52e52e5,明显是不可能了。那就考虑多源最短路吧。将这ppp个点都加入队列作为源点。对于每一个节点,我们记录它是由哪一个源点扩展出来的。当从一个源点iii,扩展到另一个源点jjj扩展出来的一个节点uuu时,那么dis(...原创 2018-10-04 19:13:10 · 319 阅读 · 0 评论 -
牛客国庆集训派对Day3 H Travel(连通块计数)
Travel题意:求对于n−1n-1n−1条边连通的nnn个城市进行mmm次旅游,每一座城市恰好旅行一次有多少种方案。(每次至少旅游一座城市)题解:求树分割成mmm块,然后全排列即可。即从n−1n-1n−1条边选择m−1m-1m−1条边进行分割,再对mmm个连通块全排列。C(n−1,m−1)⋅m!C(n-1,m-1)\cdot m!C(n−1,m−1)⋅m!代码#include<b...原创 2018-10-04 18:02:35 · 213 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 D. Made In Heaven(K短路+启发式A*)
Made In Heaven问题分析题意:求111到nnn的第kkk短的路径长度,如果超过TTT输出Whitesnake!Whitesnake!Whitesnake!,否则输出yareyaredawayareyaredawayareyaredawa。 题解:这道题呢,核心就在于对于A∗A∗A*算法的理解与应用。这里不打算长述什么是A∗A∗A*算法。 只需要知道A∗A∗A*也是基...原创 2018-09-08 21:10:36 · 397 阅读 · 2 评论 -
ACM-ICPC 2018 南京赛区网络预赛 L Magical Girl Haze(分层图最短路)
Magical Girl Haze问题分析题意:最多可以将mmm条边中的kkk条边的权值变为000,问111到nnn的最短距离。 题解:首先建立k+1k+1k+1层相同的图,其中kkk个间隔代表kkk次机会,将对于每一条边(u,v)(u,v)(u,v),我们从当前层往底层建立一条权值为000的单向边(单向边保证不会返回上一层)。然后跑多一维的dijkstradijkstradijks...原创 2018-09-01 23:43:33 · 269 阅读 · 0 评论 -
POJ 1611(基础并查集)
The Suspects问题分析基础并查集,就是加了个人数统计。#include <cstdio>using namespace std;const int N = 3e4+3;int n,m,k, total[N], f[N], father, son;int GetF(int v){ if(f[v]==v){ return...原创 2018-07-27 18:47:58 · 408 阅读 · 0 评论 -
Benelux Algorithm Programming Contest 2014 Final B Button Bashing(BFS)
Button Bashing问题分析以每一刻的时间为节点构建一张图,对于每个节点,用按钮加边,然后BFSBFSBFS或者dijkstradijkstradijkstra找最短路径就可以了。#include &lt;bits/stdc++.h&gt;using namespace std;int t,n,cook, vis[4000], a[17], presses[40...原创 2018-07-15 21:24:49 · 242 阅读 · 1 评论 -
BAPC 2014 Preliminary B
Failing Components问题分析基本算是裸的dijkstra了,但必须优化一下,这里蒻用的邻接表优化的。求出源点到其他顶点的最短路之后,再从中找出源点到其他顶点的相对最长路径,就是最后所有组件坏掉之前所经过的时间,从源点到其他顶点路径长度比这段路径短的顶点个数就是最后坏掉的组件。#include <cstdio>#include <iostream>...原创 2018-07-07 21:29:34 · 334 阅读 · 0 评论 -
TSP问题之状压dp
TSP问题(Traveling Salesman Problem)是数学领域中著名问题之一。假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市,要求路径的总和最小。其中,2<=N<=15。看到n的这个范围,很多情况下就是状压了,因为所有可能的路线共有(n-1)!种,这个值太大了。状压就是将状态压缩成...原创 2018-04-02 23:27:36 · 1010 阅读 · 0 评论 -
PAT L2-006 树的遍历
L2-006. 树的遍历时间限制: 400 ms 内存限制: 65536 kB 代码长度限制: 8000 B 判题程序: Standard 作者: 陈越给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列...原创 2018-03-27 21:09:41 · 796 阅读 · 0 评论 -
ZOJ 1137(二分图的最大独立点集)
Girls and BoysTime Limit: 10 Seconds Memory Limit: 32768 KBthe second year of the university somebody started a study on the romantic relations between the students. The relation ��romantical...原创 2018-03-07 15:07:11 · 636 阅读 · 0 评论 -
牛客网 2018年全国多校算法寒假训练营练习比赛(第四场)F题
Call to your teacher时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld题目描述 从实验室出来后,你忽然发现你居然把自己的电脑落在了实验室里,但是实验室的老师已经把大门锁上了。更糟的是,你没有那个老师的电话号码。你开始给你知道的所有人打电话,询问他们有没有老师的电话,如果没有...原创 2018-02-11 21:33:43 · 566 阅读 · 0 评论 -
Codeforces Round #541 (Div. 2) D. Gourmet choice(并查集+拓扑) F. Asya And Kittens(启发式合并+链表)
D. Gourmet choice题意:给出两个序列aia_iai和bjb_jbj的大小关系,问能否恢复这两个序列,如果可以则输出,否则输出NoNoNo。题解:因为有等于号的存在,所以导致建图会形成环,因此我们考虑用并查集将等于关系的缩成一个点,然后去建图,跑一遍拓扑即可。代码#include<bits/stdc++.h>#define DEBUG(x) std::ce...原创 2019-03-02 15:27:12 · 301 阅读 · 0 评论