图论算法与模型(训练指南题库)

一、基础题目

1、UVA 11624 Fire!迷宫问题 多源BFS

题意:

帮助joe走出一个大火蔓延的迷宫,其中joe每分钟可往上下左右四个方向之一走,所有着火的格子都会蔓延(空格与着火格有公共边,下一分钟这个空格也会着火)。迷宫中有一些障碍格,joe和火都无法进入,当joe走到一个边界的格子我们认为他走出了迷宫

输出R行C列的迷宫,#表示墙,.表示空地,J表示joe,F是着火格

如果能走出,输出最少时间否则,impossible

思路:

先预处理出每个点的起火时间,可以用多源点BFS直接处理出来

再用BFS求从出发点到边界的最短路,每次扩展点的时候保证走到该点的时间严格小于该点起火时间

代码:

https://paste.ubuntu.com/p/R4bpSJDGvP/

2、UVA 10047 The Monocycle 迷宫问题 复合状态

题意:

从起点到终点,每秒可以选择前进、向左、向右转, 每前进一格轮子转到下一个颜色, 一共5种颜色, 开始的时候绿色接触地面,朝北, 要求最后也绿色接触地面,求能否到达目标点以及最短时间。

思路:

BFS 多了两维状态 直接模拟即可

代码:

https://paste.ubuntu.com/p/QRDxqFxN6F/

3、UVA 10054 The Necklace 欧拉回路

题意:

n个珠子,每个珠子的两半由不同的颜色组成。 只有相同的颜色才能接在一起, 问能否组成一个一个项链。

思路:

判断每个点的度数均为偶数个,判断图联通,注意有重边。然后用刘汝佳的欧拉回路模板即可。

代码:

https://paste.ubuntu.com/p/9VPsbRh53M/

4、UVALive 4255 Guess 拓扑排序

题意:

对于一个序列a1,a2,a3,….an,我们可以计算出一个符号矩阵S,就是上面右图矩阵,其中S(i,j)表示 ai+…+aj的正负号,给出序列不难求出矩阵,我们的任务是求出“逆问题”,即给出矩阵,求出序列,序列每个值大于-10小于10;

思路:

拓扑排序即可,主意需要用Kahn算法进行拓扑排序,因为有多个入度为0的点的话,必须设置成权值一样的点。

代码:

https://paste.ubuntu.com/p/VwF7NcWZnx/

5、UVAlive 3523 Knights of the Round Table 二分图+双连通分量

题意:

有n(n≤1000)个骑士,m(m≤1000000)对骑士互相憎恨,要3个以上的骑士且保证互相憎恨的骑士不会坐在相邻位置才能开会议,求多少骑士一定不能参加任何一次会议。

思路:

首先建图,两个骑士可以相邻,那么就连边。那么题目转化成求不在任何一个简单奇圈上的节点的个数。如果图G不连通,那么分成几个连通分量来求解。

假设图G连通,那么简单圈上的点必然属于一个双连通分量,所以先找出所有双连通分量。

二分图的充要条件是没有奇圈,可以很明显的得到:如果一个双连通分量是二分图,那么里面的点一定不在奇圈上。

如果一个双连通分量不是二分图,那么里面的点会在奇圈上吗?

答案是一定在奇圈上,首先双连通分量不是二分图,那么里面一定存在一个奇圈C。对于这个连通分量里面的点,有两种状态,在C上和不在C上。

在C上的话,本身C就是一个奇圈

不在C上的话,可以构造出一个奇圈出来。在C上取两点u1和u2,u1到u2有两条不相交路径,并且长度为一奇一偶,对于C外的任意一点v,由于是在双连通分量内,v到u1,v到u2有不相交的两条路径,这样的话,由于u1到u2之间既有偶数长度的路径,也有奇数长度的路径,所以v一定可以和u1 u2构造出奇圈出来。

整理一下思路就是首先求出所有的双连通分量,再判断这个双连通分量是不是二分图,如果不是二分图,那么该连通分量里面的点都为可以在奇圈的点,处理出所有可以在奇圈上的点之后,再算出不可以在奇圈上的点的数目即可。

代码:

https://paste.ubuntu.com/p/KjYRQ2rDwR/

原文地址:https://www.cnblogs.com/fzl194/p/9578128.html

时间: 2024-08-02 11:51:45

图论算法与模型(训练指南题库)的相关文章

Uva10881-算法入门经典训练指南

算法入门经典训练指南 第一章例题5 这道题个人感觉还是很有技术含量的,如果纯模拟可以搞死人. 这里面的一个蚂蚁在碰撞而掉头的情形,最后被看做是“对穿而过”,这种“转换思想”是非常厉害滴..要是我有一天也有这种技能就好了 个人感觉如果看不出来,这道题就挂了. 所以在处理复杂问题上的时候,如果直接去做很复杂.很麻烦,那就应该想办法变通,比如像这道题目,我们寻找共同点,于是发现,他们的方向始终相反,速度始终相同,那么就可以看作是一毛一样地蚂蚁. 当然处理完了之后,还有一些小细节,比如所有蚂蚁的相对位置

《算法竞赛入门经典——训练指南》第二章题库

UVa特别题库 UVa网站专门为本书设立的分类题库配合,方便读者提交: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=442 注意,下面注有"extra"的习题并没有在书中出现,但在上面的特别题库中有,属于附加习题. 基础练习 (Basic Problems) UVa11388 GCD LCM UVa11889 Benefit UVa10943 How do y

北大POJ题库使用指南

原文地址:北大POJ题库使用指南 北大ACM题分类主流算法: 1.搜索 //回溯 2.DP(动态规划)//记忆化搜索 3.贪心 4.图论 //最短路径.最小生成树.网络流 5.数论 //组合数学(排列组合).递推关系.质因数法 6.计算几何 //凸壳.同等安置矩形的并的面积与周长.凸包计算问题 8.模拟 9.数据结构 //并查集.堆.树形结构 10.博弈论 11.CD有正气法题目分类: 1. 排序 1423, 1694, 1723, 1727, 1763, 1788, 1828, 1838, 1

算法竞赛入门经典-训练指南(10881-Piotr's Ants)

题目大意: 一根长度为L的木棍一堆蚂蚁爬,向左或向右,速度都为1,若两蚂蚁碰撞则同时转头(转身时间忽略不计),问T时间之后每只蚂蚁的位置: 输入:t,(t个样例),每个样例输入 L,T,n,接下来是n行每行两个数据,一个POS(位置),一个dir(方向): 输出:按输入顺序输出每只蚂蚁的最终位置,若处于碰撞状态则输出Turning,掉下去输出"Fell off": 解题思路: 本题类似于<挑战程序设计>的一道水题(POJ -1852  Ants),思路题:不过本题输入并不一

训练指南 UVA- 11865(有向最小生成树 + 朱刘算法 + 二分)

layout: post title: 训练指南 UVA- 11865(有向最小生成树 + 朱刘算法 + 二分) author: "luowentaoaa" catalog: true mathjax: true tags: - 最小生成树 - 图论 - 训练指南 Stream My Contest UVA - 11865 二分带宽,然后判断最小生成树是否小于cost值. #include<bits/stdc++.h> using namespace std; typede

训练指南 UVALive - 4043(二分图匹配 + KM算法)

layout: post title: 训练指南 UVALive - 4043(二分图匹配 + KM算法) author: "luowentaoaa" catalog: true mathjax: true tags: - 二分图匹配 - 图论 - 训练指南 Ants UVALive - 4043 题意 给你n个白点和n个黑点的平面坐标,要求用n条不相交的线连起来,每条线段连一个白点和黑点,每个点连一条线,也就是匹配.让你输出第i个白点所对应的黑点. 思路 二分图完美匹配问题.但是题目

训练指南 网络流题集

layout: post title: 训练指南 网络流题集 author: "luowentaoaa" catalog: true mathjax: true tags: - 网络流 - 图论 - 训练指南 A.UVA - 11248 (最大流,最小割) UVA - 11248 Frequency Hopping 题意 给定一个有向网络,每条边均有一个容量.问是否存在一个从点1到点N,流量为C的流.如果不存在,是否可以恰好修改一条弧的容量,使得存在这样的流. 思路 先求一遍最大流,如

算法竞赛入门经典训练指南

最近在看算法竞赛入门经典训练指南这本书,书中不错的算法我将在博客中发布,和大家共同学习. 题目: 在你的王国里有一条n个头的恶龙,你希望雇一些骑士把它杀死(即砍掉所有头).村里有m个骑士可以雇佣,一个能力值为m的骑士可以砍掉一个直径不超过x的头,且需要支付x个金币.如何雇佣骑士才能砍掉恶龙的所有头,且需要支付的金币最少?注意,一个骑士只能砍一个头(且不能被雇佣两次). 输入格式: 输入包含多组数据.每组数据的第一行为正整数m和n(1<=m,n<=20 000):以下m行每行为一个整数,即恶龙每

算法面试课程笔记000 玩转算法面试 leetcode题库分门别类详细解析

算法面试课程笔记 =============================================================================== 本文地址 : =============================================================================== liuyubobobo老师 <<玩转算法面试 leetcode题库分门别类详细解析>> 为了面试,更为了提升你的算法思维 http:/