数据结构-图
文章平均质量分 58
leoxry
天道酬勤,拼搏一个最好的自己送给未来的自己,每天开开心心敲代码就是一种幸福,不计得失,回归刚开始学习时内心的单纯
展开
-
sdut ——找朋友(广度优先搜索)
think: 1今天上午做了一上午才AC这个题目,感觉后台数据有非法输入,一开始自己用的int型map数组通过输入的字符的四种情况来判断map的值,可是样本数据正确提交却一直wrong answer,呃,感人的测试结果,刚才自己把猜测的非法数据解决方案输入了,还是wrong answer,看来应该是没有非法数据,这样的话错误应该还是在对应关系上不对,欲哭无泪状,刚才把字符串对应的换了对应关系,然后原创 2017-02-16 12:24:02 · 706 阅读 · 0 评论 -
图的深度遍历
think: 1题目可以邻接矩阵存储,如果用邻接表得需要将邻接表进行有序化,自己一开始没有用有序化邻接表,根据推算自己的样板数据应该并不通过,但样本数据竟然对了,当然提交OJ之后wrong answer,邻接表可塑性很高,自己需要静下心来深入研究,当然邻接矩阵也不能忽视,邻接矩阵可理解性比较高,但时间复杂度有点难以大幅度优化,解题很可能伴随着超时的情况 2图的深度遍历感觉自己并不是很理解,图的深原创 2017-02-15 12:25:53 · 640 阅读 · 0 评论 -
数据结构实验之图论四:迷宫探索
think: 1递归的过程理解 2邻接矩阵理解 3深度优先搜索理解sdut原题链接参考博客链接数据结构实验之图论四:迷宫探索 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?原创 2017-02-15 15:42:54 · 391 阅读 · 0 评论 -
走迷宫
think: 1题目似乎没有很明显的模板性,我是否应该反思转换学习图的方法,自己目前的认识水平这个题目很难找到DFS与BFS的影子,自己应该把思维延伸,将DFS与BFS的思想运用到解题中,而不是急于求成,越是急于求成,根基越是不牢,最后只会导致自己寸步难行,既然自己在学习图的存储结构中决定展现自己的做题风格,那么自己越是艰难越不能盲目做题, 题目说每次可以往上下左右四个方向移动也就意味着每在一个原创 2017-02-15 19:00:42 · 696 阅读 · 2 评论 -
图结构练习——BFSDFS——判断可达性
think: 1题目注意超时,自己刚开始用的深度优先搜索和有序邻接表,超时 推测如果用邻接矩阵可能会直接runtime error 2反思:根据题意选用适合的数据结构,这个题目建议用广度优先搜索和邻接表图结构练习——BFSDFS——判断可达性 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 在古老的魔兽传说中,有两个原创 2017-02-15 20:35:42 · 457 阅读 · 0 评论 -
图结构练习——BFS——从起始点到目标点的最短步数
think: 1结构数组+广度优先搜索 2逆推思想sdut原题链接图结构练习——BFS——从起始点到目标点的最短步数 Time Limit: 1000MS Memory Limit: 65536KB Problem Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1..n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天原创 2017-02-15 21:50:56 · 377 阅读 · 0 评论 -
C - 哈密顿绕行世界问题——DFS
Think: 1DFS: 1>控制结束条件 2>传递 2反思: 1>不自信 2>未判断最后一个城市是否可以到达初始出发城市(感谢鑫哥点拨) 3收货: 1>DFS加深理解 2>通过宏观分步调试判断出现错误地方 3>哈密顿图理解:不重复经过每个结点回到最初出发结点vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>us原创 2017-05-23 19:49:59 · 674 阅读 · 0 评论 -
Ivan's Car URAL - 1930——前向星+spfa算法
Think: 1题意理解:从A结点到B结点,每次有两种状态,上或者下,上下交替时需要齿轮数量加一 2思路: 1>结点编号可达到10000,因此基本不能用邻接矩阵存储,所以思考前向星存储边和结点的关系 2>一个结点到另一个结点,思考最短路径 3反思: 1>初始状态可以有两种操作,向上或者向下 2>存储的是无向图,因此边的存储至少需要开临界边数的两倍建议参考博客:深度理解前向星vjudge原创 2017-06-16 22:18:45 · 386 阅读 · 0 评论 -
H - Kingdoms UVA - 12507——最小生成树+dfs
Think: 1思路: 1>将1号结点预处理,通过图的连通性满足其余结点与1号结点直接或间接连接 2>dfs枚举情况不断试探最优解vjudge题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;int T, n, m, K, w[24], f[24], book[24];int ans, cnt;struct node {原创 2017-06-23 17:45:04 · 395 阅读 · 0 评论 -
AOE网上的关键路径——spfa+前向星
Think: 1知识点:spfa+前向星 2题目分析:字典序最小——逆序建图——建议参考博客SDUT题目链接#include <bits/stdc++.h>using namespace std;const int Inf = 0x3f3f3f3f;struct node { int v; int w; int next;}edge[50004];queue <int>原创 2017-07-15 09:06:30 · 584 阅读 · 0 评论 -
完美网络
Think: 1知识点:优先队列 2题意分析:去掉任意一条边,图仍是连通图,每个结点度数大于等于2建议参考博客1 建议参考博客2SDUT题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;int deg[10004];int main(){ int T, n, m, u, v, cnt, x, y; prio原创 2017-07-22 18:08:53 · 301 阅读 · 0 评论 -
数据结构实验之图论八:欧拉回路
Think: 1知识:无向图存在欧拉回路:无向连通图+所有结点度为偶数 2知识点:并查集 3知识拓展: 1>有向图存在欧拉回路:有向连通图+所有结点入度等于出度 2>混合图存在欧拉回路: ——建议参考博客SDUT题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;int n, f[1004], deg[1004];v原创 2017-07-22 18:09:10 · 379 阅读 · 0 评论 -
K - The Unique MST——判断一个连通无向图的最小生成树是否是唯一的
Think: 1知识点:判断一个连通无向图的最小生成树是否是唯一的+最小生成树_Prim算法+记录路径 2题意:给定一个连通无向图,判断这个连通无向图的最小生成树是否是唯一的 3错误反思: 4思路: 1>思路1:第一遍Prim算法求出路径最小权值和且记录路径,然后逐一试探删掉一条记录的路径之后图是否连通,若图连通则判断当前状态最小生成树最小边权和是否和之前的最小权值和相等,逐一遍历完成后若原创 2017-08-02 18:59:01 · 7519 阅读 · 1 评论 -
【二分图匹配-匈牙利算法】Courses HDU - 1083
Think: 1知识点:二分图匹配-匈牙利算法 2题意:T组测试数据,每组测试数据输入n, m表示n门课程,m名学生,询问是否存在n名学生,使得他们满足每名学生学习了至少一门不同于其它学生的课程 3思路:建图——二分图匹配 4反思:for循环内改变了循环控制变量,导致for循环未正常结束vjudge题目链接以下为Accepted代码/*二分图匹配——行列匹配法*/#include <cstd原创 2017-09-04 15:32:26 · 337 阅读 · 0 评论 -
数据结构实验之图论二:基于邻接表的广度优先搜索遍历
think: 1基于邻接表的广度优先搜索遍历其实需要学会建立按照结点大小顺序建立的邻接表和广度优先搜索遍历的队列思想 2按照结点大小顺序建立的邻接表就是建立有序链表,在建立有序链表的过程中需要考虑头结点的数据存放,我直接把开始的结点放在头结点的数据域中,这样其实可以逐渐从一个点进行突破,后面可以讲数据域从一个数据扩展到另一个数据类型,相对其它模板,这样做减少了模板的通用性,但增加了模板的可塑性,原创 2017-02-15 12:03:21 · 656 阅读 · 0 评论 -
数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
think: 1 今天晚上截止现在只AC了这道新题,明天又要开新课了,作为一名学渣,感觉在504真的好锻炼自己,真希望自己可以留在ACM,希望这样的时光还能再多些,虽然感觉每天挺累的,但作为平常人要想和天才们减少差距,有时候拼命努力或许才能仅仅跟上他们正常的进度学习,之前看过一篇文章,写到过在一所中等大学,或许会遇到比自己聪明的,比自己努力的,既比自己聪明又比自己努力的,但是却基本不可能遇到顶尖一原创 2017-02-14 21:33:12 · 655 阅读 · 0 评论 -
汤圆の拯救计划
think: 1广度优先搜索+char型map数组sdut原题链接汤圆の拯救计划 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 又到了汤圆星球一年一度的汤圆节了,但是大魔王却过来把汤圆公主抓走了Σ( ° △ °|||)︴ 身为汤圆骑士的QAQ蒟蒻自然而然的肩负着拯救汤圆的使命 QAQ蒟蒻经历了千辛万苦(并没有)之后,原创 2017-02-16 15:05:14 · 501 阅读 · 0 评论 -
团战可以输、提莫必须死
think: 1广度优先搜索+最值情况判断 2以结构体数组为基础的队列思想sdut原题链接团战可以输、提莫必须死 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 为了一些你们不知道的原因,我们把LOL的地图抽象为一个n×m的矩阵 提莫积攒了k个蘑菇准备种到地图上去,因为提莫的背篓漏了,所原创 2017-02-16 19:17:10 · 747 阅读 · 0 评论 -
Catch That Cow
think: 1广度优先搜索(队列思想) 2以结构数组为基础的队列思想 3反思:自己因为vis数组有的初始化位置不对,导致runtime error.???hint; 一个农夫的奶牛跑了,他要追上奶牛,奶牛不动,他和奶牛在同一坐标轴上,他可以有3种移动情况,1>他可以向前移动1格2>他可以向后移动1格3>他可以移动目前格数的两倍,三种移动方式花费的时间相同,求最少时间poj原题链接Catc原创 2017-02-16 20:36:49 · 301 阅读 · 0 评论 -
深度优先搜索练习之神奇的矩环
think: 1感觉自己用的不是深度优先搜索啊,——话落即发现如何判错自己的代码,人果然还是否定自己比较容易..无语啊sdut原题链接深度优先搜索练习之神奇的矩环 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 小鑫的女朋友被魔王抢走了! 魔王留给小鑫一张n*m大的表,上面有各种各样的颜色,用A-Z这26个字母来表示。魔原创 2017-02-16 21:42:39 · 904 阅读 · 0 评论 -
广度优先搜索练习之神奇的电梯
think: 1题目一开始自己使用邻接表来做,结果就是样本数据和自己思考的数据都可以通过,但是提交之后就是wrong answer,之后在博客上借鉴可前辈们的代码,使用了邻接矩阵来做,然后又wrong answer了,内心崩溃临界状态,然后对照前辈代码,发现自己因为vis数组开的小了,按照题意至少应该200+,可自己只开了104,因此修改之后提交就AC了,感觉可能是因为进度有点被别的同学拉下了,所原创 2017-02-17 10:19:08 · 544 阅读 · 0 评论 -
Pots——广度优先搜索+结构体数组
think: 1今天上午AC了自己的第三道英文题,感觉和英文题目的距离不再那么遥远,而且自己在这个题目开始逐渐尝试学习使用C++编程,虽然只是头文件,但感觉自己不再那么畏惧,开始逐渐尝试战胜自己的畏惧,害怕难免会有,想起毕淑敏的一句话,你生而有翼,又何必匍匐前行,相信自己可以战胜自己的消极情绪,做一个积极向上的人,自己曾经考虑过用大学时光来写一本书,把自己的大学时光记录下来,或许,自己应该燃起曾经原创 2017-02-17 12:06:11 · 533 阅读 · 1 评论 -
图结构练习——最短路径(Dijkstra算法)
think: 1注意重复边的覆盖 2注意map数组的初始化 3注意dist数组的初始化sdut原题链接图结构练习——最短路径 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 给定一个带权无向图,求节点1到节点n的最短路径。Input 输入包含多组数据,格式如下。 第一行包括两个整数n m,代表节点个数和边的个数原创 2017-02-17 19:43:13 · 3369 阅读 · 0 评论 -
C--最短路(Bellman-Ford或者SPFA)
think: 1题目由题意可知输入数据很大,而且顶点数达到了500000,如果用Dijkstra算法和Floyd算法定义的二维数组都无法达到500000*500000,因此可以考虑使用Bellma-Ford算法,不过得使用标记变量check用来标记数组dis在本轮松弛中是否发生了变化 2注意有权无向图 3题意提示权值大于等于0,如果权值存在小于零,可能就只能用Belloc-Ford算法了sdu原创 2017-02-19 17:06:43 · 759 阅读 · 0 评论 -
电影节——并查集
think: 1集合中的元素判断,判断两个元素在经过区间合并之后是否在同一区间sdut原题链接电影节 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 某届电影节评选电影,共有两部电影进入最后评选环节,有n名观众,每个人有一次投票的机会,每个人都按照规则投给其中一部电影。为了了解情况,记者随机询问了一些人,一共询问了m次,特原创 2017-02-20 20:46:40 · 375 阅读 · 0 评论 -
小鑫的城堡——并查集
hint: 1是否有多个根结点 2是否有回路存在sdut原题链接小鑫的城堡 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 从前有一个国王,他叫小鑫。有一天,他想建一座城堡,于是,设计师给他设计了好多简易图纸,主要是房间的连通的图纸。小鑫希望任意两个房间有且仅有一条路径可以相通。小鑫现在把设计图给你,让你帮忙判断设计图是原创 2017-02-20 21:56:19 · 512 阅读 · 1 评论 -
图的基本存储的基本方式一二维数组(布尔型二维数组)
think: 1布尔型二维数组存储sdut原题链接图的基本存储的基本方式一 Time Limit: 1500MS Memory Limit: 65536KBProblem Description 解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?Input 多组输入,到文件结尾。 每一组第一行有两个数n、m表示n个原创 2017-02-14 12:11:53 · 2466 阅读 · 0 评论 -
图的基本存储的基本方式二—邻接表(链表)
think: 1邻接表(链表)sdut原题链接图的基本存储的基本方式二 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?Input 多组输入,到文件结尾。 每一组第一行有两个数n、m表示n个点,原创 2017-02-14 12:15:00 · 742 阅读 · 0 评论 -
图的基本存储的基本方式三—结构体数组
think: 1结构体数组sdut原题链接图的基本存储的基本方式三 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?Input 多组输入,到文件结尾。 每一组第一行有两个数n、m表示n个点,m条原创 2017-02-14 12:18:49 · 547 阅读 · 0 评论 -
【树形dp+并查集】Anniversary party POJ - 2342
Think: 1题意:举行聚会,参会人选不希望自己的直属上司参加,关系形成一棵树,参会人选每个人有自己的开心度,求最大开心度 2思路:树形dp + 并查集(寻找根节点)建议参考博客以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 6004;原创 2017-06-17 16:53:41 · 415 阅读 · 0 评论