2016SDAU课程练习四
文章平均质量分 71
COKIDCC
这个作者很懒,什么都没留下…
展开
-
Problem K
简单题意 求最短路径问题,给出城市相连的,给出相连城市车程,给出想去的城市,求出最短时间。 解题思路形成过程 这个题的输入数据很多比较乱,但题本身就是最原始的最短路径问题,用dijkstra算法解决,每次找出最优路径然后修改,循环下去,最后找到所有到所有顶点的最短路径,然后找出最短的输出。 感想 虽然有套路可以用但是做起来还是很费事 AC代码 #include #include原创 2016-06-27 12:13:44 · 213 阅读 · 0 评论 -
Problem B
简单题意 在平面直角坐标系中给出各个点的坐标,要求把这些点连通起来,要求连接的线段长最短 解题思路形成过程 经历了第一题的转化的教训,我想了想这个题还能用Problem D的代码把dis数组的内容改一下即可,dis数组保存的是任意两个地点之间的距离,这个题只给了各个点的坐标,那任意两个点的距离就自己算嘛(其实是想偷懒利用原来的代码,冒着自己算可能会超时的风险),算完之后,还有一些细节要修改,原创 2016-06-20 09:13:28 · 218 阅读 · 0 评论 -
图论专题总结
ACM课程的最后一个专题,图论,其实这个专题还是比较有意思的,不过因为最后课时紧张,讲的也不是很详细。对于图也只是学个皮毛,因为快到期末考试了,题目做的也不是很多,其实还是学的东西不深,后面题目一难就不会做了。原创 2016-07-05 10:44:45 · 1257 阅读 · 0 评论 -
Problem E
简单题意 任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态计算出全省畅通需要的最低成本。 解题思路形成过程 做了前几道题有经验了,和前面的一样嘛,只不过就是把权值从距离换成费用,求最小距离变成求最小费用。只要改一下输入代码,把已经修好的路的成本设为0就行了,其他算法不用改。 感想 弄原创 2016-06-16 12:31:17 · 212 阅读 · 0 评论 -
Problem S
简单题意 给定一系列数对,例如a和b,表示a和b不是同一种性别,然后不断的给出这样的数对,问有没有性别不对的情况。 解题思路形成过程 并查集问题。实在不会了,WA了好几次,于是去网上看了一下大神的思路。每次合并之前判断是否冲突,不冲突就合并,用opp保存对立的单位,set保存并查集中的元素。opp保存对立单位,set保并查集中的元素; 当opp[x]==0 && opp[y]==0时,证明原创 2016-07-01 12:35:17 · 367 阅读 · 0 评论 -
Problem A
简单题意 给出村庄间的距离,并给出已经修好路的村庄,求使村庄连通起来最小修路距离 解题思路形成过程 这个题和Problem D畅通工程差不多,只不过这个已经有修好的一段路,看了网上一段代码的提示才突然发现,只要把已经修好路个两个村庄之间的距离设为0就行了,之后其他代码不变。 感想 就那么一点,怎么就没想到距离设为0呢 AC代码 #include #include #inclu原创 2016-06-15 11:57:38 · 241 阅读 · 0 评论 -
Problem N
简单题意 是n个发电站,m条路,每条路有各自的距离,每个发电站有各自的发电量,现在需要炸毁它们,一辆坦克只能炸毁一个发电站,而且需要炸毁的发电厂的发电量需要大于所有发电站所产生的总电量的一半,求坦克走的最短距离。 解题思路形成过程 因为题目说明不超过100个点,所以可以用floyd算法,不过因为用了三重循环,算法复杂度会增加,一不小心就超时,用cin的话就会超时,必须用scanf。把所有的0原创 2016-06-30 13:30:35 · 307 阅读 · 0 评论 -
Problem C
简单题意 使任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? 解题思路形成过程 最简单的不带权值考虑问题,老师上课讲的典型并查集问题,首先单独建立集合,把已经建立联系的村庄放到一个集合中去,最后只要找没被改过集合的数量就行了 感想 思想还是很模糊,接下来老师没讲的带权值的怎么做啊。。 AC代码 #include原创 2016-06-14 09:45:21 · 201 阅读 · 0 评论 -
Problem K
简单题意 给出每段路程所需花费,给出起点终点,找出从起点到终点的的最少花费。 解题思路形成过程 和Problem I差不多用Floyd算法,建好图之后三重循环,看了网上提示之后才发现,原来数据会很大普通的int盛不下,用long long吧。没费什么力气就过了。就是数据类型需要注意下一下 感想 处处是坑,等你跳 AC代码 #include #include using n原创 2016-06-29 11:09:45 · 345 阅读 · 0 评论 -
Problem D
简单题意 给出了任意两村庄间的距离,使任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)求铺设的公路总长度为最小。 解题思路形成过程 用了搜索的内容,用邻接矩阵把村庄的距离存起来之后搜索,从第一个村庄开始走,把没走过的村庄的最短的那个距离与村庄编号记录下来,重新更新一下到达每个村庄有效的最短距离。 感想 这个有关图的题需要好多的脑细胞啊。。。想象力很原创 2016-06-14 12:14:14 · 246 阅读 · 0 评论 -
Problem I
简单题意 给出起点和终点,找出从起点到终点的最短路线。 解题思路形成过程 用一个二维数组保存两个地点之间的距离,之后遍历每两个点(A,B)搭配,看如果两个点之间再插入一个点(C),如果A-C-B比A-B短,那么更新数组的值,最后直接输出数组中代表起点和终点的值 感想 做Problem G做了好长时间没做出来,放弃了。。。。这个题还是可以的换换口味 AC代码 #include #原创 2016-06-22 12:34:18 · 255 阅读 · 0 评论 -
Problem L
简单题意 n*m大小的矩形,起点在左上角, 终点在右下角,里面一个小矩形代表一个block。每个小矩形的边长都是2520, 小矩形的边有一个速度限制,范围是0~9, 0表示这条边不能行驶。输入部分,从上到下,从左到右, 每一条边是 "数字"+“空格”+“符号”的形式, 数字表示这条边的限速, 符号表示这条路是单向(分东西, 南北)的还是双向的。 解题思路形成过程 其实本来打算放弃的因为这原创 2016-06-28 17:24:56 · 251 阅读 · 0 评论 -
Problem H
简单题意 n个点,给你n条边,要求你连一些边,是边权总和最大(整个图可以不连通,对于每个连通子图最多只能有一个环) 解题思路形成过程 当初呢个题里面那个单词看不懂啊pseudoforest,去百度搜也没这个单词的意思,只有这个题啊,好吧我就看看别人写的题解吧,原来就是考虑环的问题。按照最大生成树的做法,只要在连接同一个连通子图的两个结点是判断该子图是否已有环,没有才可以连接。在连接不同连通子原创 2016-06-27 16:20:10 · 421 阅读 · 0 评论 -
Problem F
简单题意 给出村庄(编号用字母表示)与其他村庄之间道路的维护费用(村庄不一定和其他村庄有直接相连的道路),选择适当的道路进行维护,使得所有村庄都能通过被维护的道路连通而且维护费用最少。 解题思路形成过程 又是求最少(小)的问题,还是换汤不换药,重用Problem D的代码,不就是把村庄序号改成字母了嘛,用ASCII码转换成数字,对于“村庄不一定和其他村庄有直接相连的道路” 没有直接道路相连原创 2016-06-21 09:56:35 · 244 阅读 · 0 评论