ACM
昵称格式错误
这个作者很懒,什么都没留下…
展开
-
【HDOJ 1242 Rescue】bfs+优先队列
#include<iostream>using namespace std;#include<queue>int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};char maze[201][201];int n,m;struct Node{ int x,y,t; Node(int xx,int yy,int tt); b...原创 2018-05-26 23:02:04 · 166 阅读 · 0 评论 -
【POJ 1258 Agri-Net】MST
Agri-NetTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 66487 Accepted: 27548DescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet con...原创 2018-05-29 10:50:16 · 195 阅读 · 0 评论 -
ACM 图论 最大流问题
一:最大流问题简介1.源点,点源点:只出不进,即图中Vs汇点:只进不出,即图中Vt2.容量c(u,v)为从点u到点v能通过的最大流量。上图为容量图,则c(2,1)=43.流量f(u,v)为从点u到点v通过的实际流量4.可行流满足:(初始化的可行流为每边流量全为0)5.残量res(u,v)=c(u,v)-f(u,v)为点u到点v间还能通过的流量6.增广路径为从源点到汇点,所经过的每一条边,满足残量大...原创 2018-05-30 09:56:40 · 1095 阅读 · 0 评论 -
最大流问题——Dinic算法
#include<iostream>using namespace std;#include<queue>#include<memory.h>#include<stdlib.h>class Graph{ private: int res[101][101]; int n; int flow[101][101]; int...原创 2018-05-30 10:00:12 · 408 阅读 · 0 评论 -
二分图最大匹配——匈牙利算法
二分图的概念二分图又称作二部图,是图论中的一种特殊模型。 设G=(V, E)是一个无向图。如果顶点集V可分割为两个互不相交的子集X和Y,并且图中每条边连接的两个顶点一个在X中,另一个在Y中,则称图G为二分图。 二分图的性质定理:当且仅当无向图G的每一个回路的次数均是偶数时,G才是一个二分图。如果无回路,相当于任一回路的次数为0,故也视为二分图。二分图的判定如果一个图是连通的,可以用如下的方法判定是...转载 2018-05-30 14:24:51 · 325 阅读 · 0 评论 -
为什么Dijkstra算法不适用边长为负数的情况
Dijkstra算法(这个荷兰词真难读。。。不过Dijkstra是一位非常NB的计算机科学家,goto有害论、信号量和PV原语、哲学家聚餐问题、银行家算法等等,都是这位大牛搞出来的),是有向/无向加权图(就是每条边都有长度)中,计算两个点之间最短距离的有效方法,在使用堆排序的情况下,它的时间复杂度为O(Nlog(N+M)),(这里N代表节点数,M代表边数)很接近线性了,还是非常好的。不过,Dijk...转载 2018-05-30 18:56:43 · 1714 阅读 · 0 评论 -
Bellman Ford算法解负权图问题
B - 耳机楼的通道 POJ - 3259 题意解析要求判断经过走廊和一些秘密通道,能否回到出发之前的时间。——即有没有权值和为负(之前的时间)的回路(出发之前,要求起点和终点一样才是回到了出发之前的时间)1.走廊,等价为从S到E权值为W的有向边和从E到S权值为W的有向边2.秘密通道,等价为从S到E权值为W的有向边解法因为权值中有负数,自然不能dijikstra,并且又是判断有没有负权回路,即该负...原创 2018-05-30 21:51:41 · 614 阅读 · 0 评论 -
有坑的最短路径问题
A - The Road to Radio HDU - 1874 题目看起来很简单,直接用floyd算法就能过的题,但是WA了无数次,因为存在两点之间有多重边的情况....此时就取最小Floyd算法重点1.初始化操作,对于邻接矩阵,对角线初始化为0,非对角线初始化为INF,然后根据有的边和权值进行初始化2.算法核心,三重循环#include<iostream>using namesp...原创 2018-05-30 22:18:12 · 314 阅读 · 0 评论 -
凸包算法详解
目录一.概念二.解法三.模板一.概念凸包(Convex Hull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的线性组合来构造.在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外...转载 2019-03-11 08:48:35 · 689 阅读 · 0 评论 -
【POJ 1251 Jungle Roads】MST
Jungle RoadsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30513 Accepted: 14264DescriptionThe Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was...原创 2018-05-29 10:32:09 · 156 阅读 · 0 评论 -
【POJ 2253 Frogger】
变种的dijikstra注意输出格式:#include<iostream>using namespace std;#include<algorithm>#include<math.h>#include<memory.h>int n;double v[205];bool mark[205];double temp[205][205];...原创 2018-05-28 20:23:58 · 114 阅读 · 0 评论 -
【poj(1011)——Sticks】dfs+剪枝
涉及到dfs和剪枝,并且不剪枝就会TLE,剪枝了,也可能TLE ......关键看其他地方效率高不高,最好还是用qosrt函数,而不是sort函数#include<iostream>using namespace std;#include<cstdio>#include<memory.h>#include<cstdlib>int a[64...原创 2018-05-26 23:07:46 · 172 阅读 · 0 评论 -
POJ题目分类
转载链接:http://www.cnblogs.com/kuangbin/archive/2011/07/29/2120667.html初期:一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法...转载 2018-05-27 09:11:31 · 290 阅读 · 0 评论 -
【POJ 1062昂贵的聘礼 】
将Input转化成图,求解最短路径问题#include<iostream>using namespace std;#include<memory.h>#include<limits.h>int Graph[105][105];bool mark[105];int v[105];int grade[105];int nodeal;int M,N...原创 2018-05-27 12:17:22 · 179 阅读 · 0 评论 -
ACM优先队列
#include<iostream>using namespace std;#include<queue>#include<cstdio>struct Node{ char op; int num; Node(char operation,int number=0) { op=operation; num=number; } bo...原创 2018-05-22 21:42:07 · 435 阅读 · 0 评论 -
ACM__利用vector来遍历priority_queue
·对于上述的rank的条件部分可以使用规定优先队列的优先级来指定bool operator < (const Node& a) const { if(l>a.l) { return 1; } else if(l<a.l) { return 0; } else { if(t>a.t) { return...原创 2018-05-23 08:30:40 · 1372 阅读 · 0 评论 -
【POJ 1125 Stockbroker Grapevine】floyd/dijikstra
题意:众所周知,证券经纪业依靠的就是过度的传言。您需要想出股票经纪人中传播假情报的方法,让您的雇主在股票市场的占据优势。为了获得最大的效果,你必须蔓延最快的方式谣言。 不幸的是你,股票经纪人信息只信任他们的“可靠来源”,这意味着你在你传播谣言之前必须考虑到他们的接触结构。它需要特定股票经纪人和一定的时间把谣言传递给他的每一位同事。你的任务将是写一个程序,告诉您选择哪一个股票经纪人作为谣言的出发点和...原创 2018-05-28 10:13:15 · 175 阅读 · 0 评论 -
ACM并查集
#include<iostream>using namespace std;class Union_Find{ private: int *array; int size; int Find(int curr) const; //返回结点num的根节点 public: Union_Find(int size); void Union(int num...原创 2018-05-23 21:28:02 · 198 阅读 · 0 评论 -
ACM Huffman
·文章长度:不需要记录每一个叶子节点的高度,即不需要通过height1*wieght1+....这种方式来求·可以通过不断相加,eg 1+2+3+3+4+6即1+2+(1+2)+3+4+(1+2+3)·使用优先队列来实现:priority_queue<int, vector<int>,greator<int> > 其中greator<int>是...原创 2018-05-23 21:32:47 · 167 阅读 · 0 评论 -
ACM MST
MST为最小生成树·两种实现方式:Prim算法,Kruskal算法·该题不能使用Prim算法,因为Prim算法需要储存图的邻接矩阵,而根据Hint中n<=1000000,储存1000000*1000000会内存不够。·该题使用Kruskal算法,该算法是通过维护结点的并查集,边长的优先队列来实现的Prim解法(memory limit exceed,MLE)#include<iostr...原创 2018-05-23 21:41:45 · 446 阅读 · 0 评论 -
【POJ 1797 Heavy Transportation】
方法有1.dijikstra (原来的变形,更改初始化条件和更新条件,每一项记录当前从第一点到该点的最大承重值)#include<iostream>using namespace std;#include<algorithm>#include<memory.h>int v[1005];int mark[1005];int graph[1005]...原创 2018-05-28 18:31:55 · 198 阅读 · 0 评论 -
HDOJ1261排列组合+大数乘除
http://acm.hdu.edu.cn/showproblem.php?pid=1261题解令sum=a1+a2+···+an 种数为 sum!/(a1!a2!···an!) 其中sum最大为25*12,而int能容纳的最大阶乘为12,long long能容纳的最大阶乘不超过50,故这是一个大数乘法的问题。https://blog.csdn.net/wang_1997/a...原创 2019-06-13 15:32:58 · 564 阅读 · 0 评论