![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 68
Hacker_vision
一件事,你可以不去做,要做,就要全力以赴,做到最完美。
展开
-
拓扑排序:hdu 1285 确定比赛名次
题目大意n个人进行了m场比赛,每场比赛的胜负给出,求按序号从小到大的顺序输出最终比赛名次解题思路1 2表示1->2的有向边,问题转换为输出满足拓扑次序的拓扑序列,就要进行有向无环图的拓扑排列,这里基于邻接表实现拓扑排序。参考代码+部分注释#include <iostream>#include <cstdio>#include <algorithm>#include <map>#include原创 2015-02-17 15:54:04 · 626 阅读 · 0 评论 -
【dfs】hdu 1111 Secret Code
【dfs】hdu 1111 Secret Code题目链接:hdu 1111 Secret Code题目大意输入一个复数X=xr+xi以及复数B=br+bi,求数列a[n]使得x=a0+a1*b+a2*b^2+…an*b^n。其中|Xi| <= 1000000, |Bi| <= 16,n<=100, |b|>ai>=0,|b|>1.很少有人问津的搜索题目,一开始我以为20^100绝对会超时,数据又原创 2015-07-25 15:01:06 · 1160 阅读 · 0 评论 -
poj2488---A Knight's Journey
图的遍历算法---DFS原创 2014-11-22 10:43:14 · 598 阅读 · 0 评论 -
【dfs+回溯】hdu 2553 N皇后问题
Source :hdu 2553 N皇后问题 http://acm.hdu.edu.cn/showproblem.php?pid=2553 Problem Description 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。Input 共有若干行原创 2015-09-04 15:58:15 · 527 阅读 · 0 评论 -
【bfs】hdu 1104 Remainder
【bfs】hdu 1104 Remainder题目链接:hdu 1104 Remainder很不错的一道搜索题目,但是有几个关键问题要注意。最短路径,果断bfs+Queue路径的存储问题,之前只想把每一步的计算结果存储到queue(int)Q中,后来发现路径无法记录,就选择存储节点的方式并用string保存路径,queue(node)Q,开一个临时的节点node p,每进行一次运算就更新它的路径原创 2015-07-24 23:34:22 · 647 阅读 · 0 评论 -
【dfs】hdu 1016 Prime Ring Problem
【dfs】hdu 1016 Prime Ring Problem题目链接刚开始接触搜索,先来一道基本题目练练手。注意对树的深度进行dfsdfs过程中注意回退!!!素数提前打表判断快一些 参考代码/*Author:Hacker_vision*/#include<bits/stdc++.h>#define clr(k,v) memset(k,v,sizeof(k))using namesp原创 2015-07-23 23:31:12 · 586 阅读 · 0 评论 -
【dfs】hdu 1175 连连看
【dfs】hdu 1175 连连看题目链接:hdu 1175 连连看题目大意连连看,问能否成功?题意很简单,就是我们平时玩的连连看的游戏规则,貌似dfs和bfs都能做,笔者就做了个dfs(好想),超时了好几次,原因是dfs(int d)与终点的d重载矛盾了,所以还是要小心。说一下思路神器的剪枝:if(t==2&&x!=c&&y!=d) return;这一部剪枝妙笔回春,9000+MS优化到100+原创 2015-07-27 12:12:14 · 723 阅读 · 0 评论 -
【欧拉路径(有向图)】poj 1386 play on words
poj 1386 play on wordshttp://poj.org/problem?id=1386问题描述:有向图欧拉路径的存在性 欧拉路径【无向图】连通 + 每个顶点的度数都为偶数 或 仅有两个点的度数为偶数【有向图】连通 + 每个顶点的入度 = 出度 或 有且仅有一个顶点的入度比出度多1同时一个顶点的出度比入度多1,其余出度等于入度思路并查集判断图的连通性(此时看成无向图即可)+欧拉路径的原创 2015-09-28 21:15:31 · 751 阅读 · 0 评论 -
【欧拉回路(无向图判定)】hdu 1878 欧拉回路
hdu 1878 欧拉回路 http://acm.hdu.edu.cn/showproblem.php?pid=1878问题描述:无向图欧拉回路的存在性 【无向图】连通 + 所有点的度数为偶数【有向图】连通 + 所有点的入度数=出度数思路dfs + vector建图参考代码 #include<iostream>#include<cstdio>#include<cstdlib>#include<原创 2015-09-24 00:20:18 · 902 阅读 · 0 评论 -
【dfs/bfs+set+快速幂】swjtuOJ 2094
【快速幂+dfs/bfs+set】swjtuOJ 2094【注:交大的看到这篇文章要学会自己写,不要为了比赛而比赛!~】题目大意问题一:主人公去度假,问经过a^b天后是星期几(简单题) 问题二:一个天平,n个重物,每个物体的重量wi已知,问能称出的所有重量有多少种? 问题二要注意到天平两侧都可以放重物,每一个重物的权值都可以赋值为w,0,-w,相当于三分,我们知道二分可以用二进制位运算进行原创 2015-08-07 11:24:30 · 806 阅读 · 0 评论 -
【MST+虚拟节点+Kruskal】swjtuOJ 2093
【MST+虚拟节点+Kruskal】swjtuOJ 2093【注:交大的看到这篇文章要学会自己写,不要为了比赛而比赛!~】题目大意给你n个节点和n个节点的权值,m条连接边,求连通权值的最小和(MST) n <= 10^5 最小生成树问题,注意原图不一定连通,构造虚拟节点0,0到其他节点边权值赋值为节点权值,求增加2n条边之后的MST即可,注意多加n个节点,数组要开成原来的两倍,笔者RE了一原创 2015-08-07 10:50:41 · 927 阅读 · 0 评论 -
最小生成树MST : poj 1258 Agri-Net+hdu 1102 Constructing Roads
最小生成树的两种算法定义:对于有权值的无向图来说,其边权值最小的生成树称作图G的最小生成树。求解最小生成树(Minimum Spanning Tree,简称MST)是图相关算法中常见的一个,用于解决类似如下的问题: 假设要在N个城市之间建立通信联络网,那么连通N个城市只需N-1条线路。这时自然会考虑这样一个问题:如何在最节省经费的前提下建立这个通信网。 在任意两个城市间都可以设置一条线路,相原创 2015-02-20 12:48:50 · 869 阅读 · 0 评论 -
二叉搜索树的前序遍历:hdu 3999 The order of a Tree
我的理解是,结点值小于根节点的值,就位于左子树;结点值大于根节点的值,就位于右子树,有点“二分”的意思. 看懂这篇文章就懂了: http://blog.163.com/qhx_405/blog/static/6338992620098140352928/题目意思是按照二叉搜索树的特征建树,最后输出相同的二叉搜索树、并且满足字典序最小,要建立相同二叉搜索树必须先确定根,字典序最小就要紧接着确立原创 2015-02-17 23:17:19 · 716 阅读 · 0 评论 -
The 36th ACM/ICPC Asia Regional Chengdu Site —— Online Contest题解
Hdu4034 Graph题目大意:一个n×n的图,(i,j)表示从第i个点到第j个点的最短路径,求原来的图最小的边数是多少?题目解析:任意两点(i,j)的最短路不能超过从(i,k)->(k,j)所有路径之和,如果相等这样的边(i,j)可要可不要(即失效)乍一看没思路,分析样例很容易发现问题关键,枚举一条最短路,判断是否有其他两条最短路之和与之相等。坑点:1.(i,j)(i,k)(原创 2015-06-02 17:00:26 · 836 阅读 · 0 评论 -
基于邻接表的图建立(有向图+无向图)
图的表示(建立)有两种方法:①邻接矩阵:A(i,j)=1表示i,j存在一条边,空间复杂度O(n^2),稠密图②邻接表:只记录存在的边,Vector+List的数据结构,稀疏图邻接矩阵的图建立这里不做赘述,接下来我们看一下邻接表的图建立:有向图注意理解头插入节点的过程int n,m;//n表示城镇个数,m表示道路条数struct LinkNode//列表原创 2015-06-06 11:35:44 · 23153 阅读 · 2 评论 -
【裸MST:prim+邻接矩阵 / Kruskal+邻接表】hdu 1233 还是畅通工程
Source : hdu 1233 还是畅通工程 http://acm.hdu.edu.cn/showproblem.php?pid=1233 Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小原创 2015-08-28 23:23:01 · 1339 阅读 · 0 评论 -
【权值初始化+有条件的MST】hdu 1875 畅通工程再续
Source : hdu 1875 畅通工程再续 http://acm.hdu.edu.cn/showproblem.php?pid=1875 Problem Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现。现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题,政府决定实现百岛湖的全畅通!经过考原创 2015-08-29 10:43:58 · 1010 阅读 · 0 评论 -
【最短路+最小费用】hdu 3790 最短路径问题
Source : hdu 3790 最短路径问题 http://acm.hdu.edu.cn/showproblem.php?pid=3790 Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input 输入n,m,点的编号是1~n,然后是m行原创 2015-08-30 11:32:34 · 3065 阅读 · 0 评论 -
【树形dp】hdu 2415 Bribing FIPA
hdu 2415 Bribing FIPA题目:给定由若干个树组成的森林, 树上的边是有向边, 树上的每个节点都有一个代价. 若要得到某个节点, 需要付出该节点对应的代价, 若该节点拥有后继, 那么后继的节点也都能获得. 求解使用最少的代价取得至少 m 个节点这道题输入是个问题,之前用 getchar()!='\n' 调了一晚上始终过不了,最后用C++的string原创 2015-07-23 14:57:53 · 887 阅读 · 0 评论 -
【裸单源最短路:Dijkstra算法两种版本】hdu 1874 畅通工程续
Source : hdu 1874 畅通工程续 http://acm.hdu.edu.cn/showproblem.php?pid=1874 Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。 现在,已知起点和原创 2015-08-29 23:33:07 · 1385 阅读 · 0 评论