自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

布呗之路

每个人都有不同的路,所以每个人都会孤独。

  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 超详细的并查集讲解 首发

/**并查集呢,我想着以HDU1232 畅通工程为例子细讲;这个题目应该很简单吧,就是求存在多少个连通分量;并查集是一个什么东西,它主体包括三个东西:pre[i]数组,find函数,join函数;那么这三个东西是什么鬼呢,分别表示的是 i的父节点称前导点,查找父节点的操作并进行优化的操作,看是否需要添加另一层关系添加新的前导点;那么有了这三个部分之后我们可以干嘛呢说一下它的功能吧:判断两

2017-11-30 23:30:56 372

转载 超有爱的并查集 6666

http://blog.csdn.net/niushuai666/article/details/6662911

2017-11-30 13:34:43 603

原创 Layout POJ - 3169 差分约束 SPFA

/**题目大概的意思就是:两个小牛不喜欢对方,每两头牛之间就会产生一些距离感我们需要计算第一头牛和最后一头牛的最大距离;(嫌弃的距离最大)然后呢它给出了每两头牛的最短距离和限制的最大距离,存在两种约束条件,转换一下就变成了最短路;我们可以选择按照前向星建图正向接正和反向接负的方法,然后跑一波SPFA找到最短路;输出的话呢,就是牛不站在一排的话(简单的说就是存在负环),输出-1;牛1和

2017-11-30 12:51:24 230

原创 Borg Maze POJ - 3026 bfs 加prim算法

/**坑点就想喷死出题的,,我想喷出题的 不知道坑人要偿命的吗?,坑点出现浪费时间,贡献了很多WA,很是不爽,mmp;讲一下我理解的题意吧;就是给你一个n*m的地图,存在S和A两个字母代表村庄,然后空格代表可以走(一个村庄的人到另一个村庄可以走,通路),然后#代表不能走;它需要修建马路使得所有的村庄尽可能连接起来,那么要你求修建起这些点所花最短时间;咋们来分析一下哈,首先它没有给咱现成的

2017-11-29 23:51:50 280

原创 Agri-Net POJ - 1258 prim算法

/**不解释 不解释 水题 水题 以前的题目稍微改一下就过了;*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const int maxn=1e2+7;int dis[maxn],mmp[maxn][maxn],ans;bool vis[max

2017-11-29 17:56:46 246

原创 Highways POJ - 1751 prim算法(构成最短边节点的输出)

/**理解:似曾相识的一道题,不过是它需要输出连接最短边的节点坐标而已,直接进行路径输出就可以了;开始的时候本来想去找到它的所有的坐标,然后再一并进行输出,后来发现那个数据有点难标记,就没有去搞了,后来又想了一个过程输出的思想虽然结果和所给的样例不符合,千方百计的想去啊换一下顺序,后来试了试,尴尬的过了 很兴奋,下意识的知道了它的这个输出的顺序是没有要求的;那么这个题呢解法还是prim 算法

2017-11-29 17:37:13 356

原创 Arctic Network POJ - 2349 求解第n大边,prim算法;

/**题意:现有m个地点,n 个卫星。卫星有一个神奇的作用, 作用在于只要某个地方安装有卫星, 不论他们之间距离为多远, 都能够互相接收到彼此间信 号, (这么好的东西当然不会让每个地方都有的), 那么其他地方需要通过收发器 D 来连接。让你求1 - m 个地方在共安装过n.个卫星后.我们所需要的收发器D所需的最大距离是多少?说白了就是我们在最远的地方进行安装卫星,尽量寻找最短的接收器的距

2017-11-29 12:53:16 283

原创 Truck History POJ - 1789 prim算法

/**n个车牌号,刚开始只有一个车牌,其他车牌都是由一个车牌直接或间接产生一个车牌到另一个车牌的产生权值是它们之间的字母不同的个数问产生的最小的边权和prim 最小生成树*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const int m

2017-11-29 00:07:54 212

原创 QS Network ZOJ - 1586 prim算法

/**题意:在某个外星球有些叫QS的外星人。他们之间要相互联系。但是要买网络适配器,当然不同的QS喜欢不同价格的适配器。而且还需要买网络电缆,而且都需要费用。让你求用最小的花费去建立他们之间的联系。*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int inf=0x3f3f3f3f

2017-11-28 23:51:06 257

原创 Constructing Roads POJ - 2421 prim算法

/**题意:有n个村子,他们现在需要修路,给出每两个村庄的距离,求连通村庄所需修路的最短长度,但是有些路已经是修好了,所以不需要重修,简单的说就是边值为0;这个也没什么,很简单;*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const in

2017-11-28 23:19:51 255

原创 POJ - 2031 Building a Space Station prim算法

/**题意: 题目长的让人无语,就是简单的最小生成树模板题。题目给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥就是距离为0;。求搭建通路的最小费用(费用就是边权,就是两个球面之间的距离)。*/#include<cstdio>#include<cmath>#include<cstring>using name

2017-11-28 22:58:26 224

原创 POJ - 1287 Networking prim算法

/**水题 水题 prim 水过;以后再来写一波克鲁斯卡尔;并查集不是很溜;*/#include<cstdio>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;const int maxn=1e2+7;int n,m,ans,mmp[maxn][maxn],dis[maxn];bool vis[maxn];

2017-11-28 19:44:30 237

原创 HDU - 1875 畅通工程再续 prim算法

/**这个题目就是在原来畅通工程的基础上加了一个条件,说白了看是否能够联通;如果能够联通,算出最低花费;没有什么难度,水水的就过了;*/#include<cstdio>#include<cmath>using namespace std;int n;const double inf=0x3f3f3f3f*1.0;const int maxn=2e2+7;double mmp[maxn

2017-11-27 22:02:58 293

原创 HDU - 1233 还是畅通工程 prim算法(裸模板)

/**很裸的模板题;*/#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int inf=0x3f3f3f3f;int mmp[110][110],dis[110];int num;bool vis[110];void prime(){ int k,Min,sum=0

2017-11-26 23:47:32 268

原创 POJ - 1062 昂贵的聘礼 (等级限制,过程部分最优得到结果最优,SPFA)

/**题意:一个人它需要获得一件物品,但是呢他现在的钱不是很够,所以呢它可以进行周转得到更多的金币,那么它应该怎么做呢?所谓周转就是用金币换 或者以物换物,因为同一件商品在不同的人里面它的价值可能是不一样的,所以它需要通过花最少的钱来获得该物品所需的费用;(因为它开始买东西也是需要费用的);这个题目呢主要卡的就是你的等级限制;所以呢咋们就需要找到它的所有的等级,因为它会存在重复的情况;

2017-11-26 14:04:44 250

原创 C++的unique函数

/**一般来说,下面两个配套使用;sort(a,a+n);ans=unique(a,a+n)-a;该函数的作用是“去除”容器或者数组中相邻元素的重复出现的元素,注意 (1) 这里的去除并非真正意义的erase,而是将重复的元素放到容器的末尾,返回值是去重之后的尾地址。 (2) unique针对的是相邻元素,所以对于顺序顺序错乱的数组成员,或者容器成员,需要先进行排序,可以调用std:

2017-11-26 10:45:39 909

原创 POJ - 1502 SPFA

/**题目大意:N个处理器要进行信息传递,处理器i传递信息给自己不需要时间,处理器i与处理器j之间相互传递信息的时间是一样的,不同处理器之间传递信息所需要的时间由一个矩阵的下三角给出。若矩阵对应位置为x,则说明相应的两个处理器之间无法传递信息。求从第一个处理器传递信息到其他所有处理器最少需要多少时间。最少需要多少时间 那么就是看1-n最长的那个需要多少时间;*/#include<cst

2017-11-26 00:30:45 250

原创 POJ - 1847 Tram(火车转换接口,权值0/1化) 栈版SPFA

/*****题目大意:存在N个叉点,算从A点到B点开动开关最多多少次接下来N行就是输入一个数字num代表与相邻的点的个数,接下来的num个数表示与i相邻的点的位置;其实就是把到达该节点的权值自己赋值为0/1;知道了题意就很简单了;思路就是SPFA求解最短路,随手写了一个前向星建图栈板SPFA,感觉美滋滋;****/#include<cstdio>#include<stack>us

2017-11-24 19:00:04 320

原创 LightOJ - 1074 Extended Traffic(SPFA判负环)

/*题意:有n个城市,每一个城市有一个拥挤度ai,下面m行数据(a,b)表示的是a,b两个位置同时能够得到a到b所花的时间为(a-b)^3,然后再给q个数据x,问从第一个城市到达第x个城市所花的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间思路;这个题目是存在负环的,所以常规的判别负环是不能够 get over it所以我们可以用SPFA算法来搞一波事情;只要标记的位置访问的次

2017-11-24 13:38:44 569

原创 POJ - 3159 Candies (变形的最短路问题)差分约束,栈版本SPFA,前向星建图

/*:flymouse是幼稚园班上的班长,一天老师给小朋友们买了一堆的糖果,由flymouse来分发。flymouse希望自己分得的糖果数尽量多于snoopy。对于其他小朋友而言,则必须自己得到的糖果不少于班上某某,给出m个关系(A,B,C),B获得的糖果数不能多于A C个问flymouse最多能多snoopy几个糖果。那么这样就形成了一种差分约束B-A<C,变形一下就是 B<A+C,这样

2017-11-23 12:26:42 296

原创 POJ - 2502 SUBWAY(FLOYD算法求解最短路)

/*题意就是求去学校所花最短时间,在每一段距离中我们可以选择步行也可以选择坐地铁,因为有些路可能没有地铁,所以我们需要选择最佳路径输入家和学校的坐标;然后再给出你地铁的坐标,这个就是卡你的输入了,因为它那个每次走到-1 -1 的时候呢它的第一个节点是不能读取的,因为只有相邻的两个节点,它才会有距离感。这个后续解释;那么咋们应该怎么solve it?首选dijkstra,因为它的地铁站点一

2017-11-23 11:06:53 318

原创 POJ-1511(SPFA找最短路(正向和反向))

///这个题目有点意思,搞了很久过了的样例,后来发现全部都白做了,一直RE RE ,一首fuck送给题目;///说说这个题目吧,就是求1节点到所给任意节点的最短路径之和ans1,再求任意除1节点外的节点到1节点(反向)的最短距离之和ans2;ans=ans1+ans2;///那为什么我发现全白做了呢,因为我用的是dijkstra,它们给我的节点的个数是1e6,瞬间就傻逼了;///那么这个题就好

2017-11-21 17:15:30 490

原创 POJ - 2240(Arbitrage)弗洛伊德 变形 get最长路

///题意:我们知道每个国家的汇率是不一样的,所以呢我们可以通过不同的交换从中获取牟利,///假设1美元买0.5英镑,1英镑买10法郎,1法郎买0.21美元。///然后,通过转换货币,一个聪明的交易者可以从1美元开始,买入0.5×10×0.21=1.05美元,获利5%。这样的话呢就轻易获利了;///说实话就是说开始的钱的类型和最后的钱类型是一样就行了;(几经周转最后钱数变多,说白了就是说最后汇

2017-11-21 15:10:19 548

原创 POJ - 1860 Currency Exchange 判断正环(SPFA,FLOYD)

/*一个人去银行存钱,但是呢,存钱和取钱的汇率是不一样的,所以它想通过存钱使得自己的本金变高,然而事实是在取钱的过程中,需要手续费。这个就很难办了,万一它的手续费很大呢,所以在循环多次的情况下它的钱可能变为一个负数,所以在这里我们的思路就是判断其中是否含有正环就好了;开始的时候,我以为在存钱的时候,循环一圈之后如果得到的钱数比本金大就好了,所以在开头的时候就说了,万一手续费很高呢,所以在循环的

2017-11-18 13:59:05 395

原创 POJ - 3259 弗洛伊德判负环

///这个就是判断回路是否存在负环;///然后用一下佛洛依德就出来了;细节如下#include<cstdio>#include<cstring>using namespace std;int mmp[505][505],n,m,k;int floyd(){ int i,j,k; for(k=1;k<=n;k++) for(i=1;i<=n;i++)

2017-11-18 00:56:44 709

原创 POJ - 3268 Silver Cow Party(两遍dijktsra)

///这个题的意思就是说:一群牛要去指定的一头牛的家里做客,然后呢去的时候的路线和返回的路线可能不一样(有向图的权值不一样),///求到达那头牛家里的时间和返回家里的时间和的最大值;(求里面的某一头 去和回来 时间的最大值;)///因为这个是有向图,所以呢,咋们可以来两遍dijkstra,过去和回来,然后再最后取一个最大值就好了;#include<cstdio>#include<cmath>

2017-11-17 18:19:29 428

原创 POJ - 1797 Heavy Transportation

/*题意就是说从1-n的所有通路中找到一个最大载重量;运用dijkstar算法进行松弛操作,就是每次找到最大边然后不断的更新;*/#include<cstdio>#include<cmath>#include<cstring>using namespace std;int Minn(int a,int b) { return (a<b)?a:b;}int Maxx(int a,int

2017-11-17 13:32:22 201

原创 Dijkstra POJ - 2387

/*题意就是说从节点为1走到节点为n的节点花的时间最短;这个题很明显就是最短路的一些知识了,用dijkstra水水的就过去了;然后呢就这个题目来说一下关于我对dijkstra的看法;这个东西呢就是计算单源最短路(从某个点到某一个点的最短时间);这个我们先将源头节点视为0(开始走的时间为0),其余的为inf(无穷);在n次循环中,我们在每一个未标记的节点中,选出达到这个点所花的最小时间的位置,

2017-11-14 19:43:42 414

原创 FZU - 2150 Fire Game

///题意就是两个人在一个有草的地方放火,然后火的话呢 可以向4个方向蔓延,问两个人放火的时候,怎样才能够把草烧完使得所花时间最少(求时间)。///因为这个点的个数比较少,所以呢咋们不妨一一进行枚举,找随机的两个点进行bfs直到所有的草全部烧完,在每次最大的里面求求一个最小值。#include<cstdio>#include<cstring>#include<iostream>#inclu

2017-11-13 19:07:01 216

原创 HDU - 2612 Find a way(KFC)

///题意:求两个人到达最近一家KFC所需的最短时间(两个人的时间和)///思路就是来两边bfs分别记录两个人到达每一个KFC的时间,然后加起来的和最小就完事了;///这个题是真的艰辛 TLE稳稳的很,很烦 后来各种试探 出来的那一刻 我还是不知道测评机为什么要卡我那个;#include<cstdio>#include<cstring>#include<queue>#define i

2017-11-13 00:19:31 271

原创 POJ - 3414 Pots

///这个题的意思就是:现在有两个空杯子x y(容量),然后往里面倒水,接下来它们之间有几个操作(怎样倒水):x->empty,x->full,x->y,y->empty,y->full,y->x;///再给出一个数z,问:什么时候某一个杯子的水的体积等于z,然后就完成了。。///当然题目不会这么easy,它需要的是你倒的次数和你倒的过程,看看上面就知道倒的次数了;那么问题来了,怎么记录它的过程

2017-11-12 18:31:24 195

原创 HDU - 1241 Oil Deposits

///油田 这个题是真的水 就是判断有多少个联通块 很简单 8个方向进行走一波 然后标记走完一波就ans++;#include<cstdio>#include<cstring>using namespace std;const int maxn=1e2+7;int n,m,ans;char str[maxn][maxn];bool vis[maxn][maxn];void dfs

2017-11-12 18:27:34 197

原创 POJ - 3087 两个字符串的组合能否到达另一个字符串

///题意就是说给你两个字符串s1,s2,求他们进行互插得到s3的步数,得不到s3的话就得不到咯,在得到一个新的串的时候///我们取上面的n个字符组成s1,取下面n个组成s2,然后两个再从新造人看是否能够得到s3;///如果出现重复的情况的话,那肯定是不行的。#include<iostream>#include<cstdio>#include<cstring>#include<map>

2017-11-11 15:50:46 300

原创 POJ-3126 一个素数转换到另一个素数的最短步数

///题意:一个四位素数变到另一个素数最多需要变换(每个位置上的数字变成另一个数,且变换后的数还是素数)多少次///一个是暴力的写法,一个是bfs(暴力);大概的意思都是把每一个数的个十百千分别提取出来///然后进行除了本身的几种变换 然后每次记录到达中途某个数的步数,直到该数字等于所给数为止;/*#include<cstdio>#include<iostream>#include<al

2017-11-11 15:21:48 1192

原创 POJ-1426 由0|1组成10进制数整除问题

///题意:给你一个n,能找到一个数字ans整除它 ans的所有位数必须是0或者是1;///这个题目其实挺简单的关键是跑的时间上可能有点多,下面给出dfs和bfs的写法;///bfs交c++的TLE,交g++然后是4百多毫秒的感觉;实在是搞不懂这个测评机是怎么想的;///整体上来看bfs更好操作 但是就是一不小心可能就TLE了;这样就很尴尬;/*#include<cstdio>#inclu

2017-11-10 19:21:01 444 1

原创 POJ - 3278抓牛牛

///题意:大牛怎样最快的抓到小牛;给你大牛和小牛的坐标,大牛怎样才能最快的抓到小牛///说来大牛的走位也真是神奇(腿长一点走当前坐标的两倍,短一点就往后退一步或者前进一步) 但是那些走都算一步;///思路:一维的bfs走一走#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn

2017-11-10 11:26:15 445

原创 POJ-1321棋盘问题

///题意就是说给你一个n*n的字符型矩阵,再给你k个棋子,要求摆放的k个棋子的任意两个不能在同一行或者同一列(不就是说一定要在斜对面嘛)///然后就是在所给的字符型矩阵中把所有棋子放在所给的‘#’位置上看有多少种放法;///思路 dfs走一波水水的就过了;#include<cstdio>#include<cstring>using namespace std;char str[10][

2017-11-10 11:02:41 246

原创 POJ-2251三维bfs

///题意大概讲的就是说 从一个点走到另一个点的最短距离,很巧妙的是这是一个三维的立体平面,其实都一样;///这个应该就是很土鳖的三维bfs,有坑待填;(细节下面走一波)#include<cstdio>#include<cstring>#include<queue>using namespace std;struct node{int x,y,z,step;};///三个方向,步数;int

2017-11-09 17:54:27 249

原创 POJ-1213 k层for的sum

///题意就是说给你一个n*n的字符型矩阵,再给你k个棋子,要求摆放的k个棋子的任意两个不能在同一行或者同一列(不就是说一定要在斜对面嘛)///然后就是在所给的字符型矩阵中把所有棋子放在所给的‘#’位置上看有多少种放法;///思路 dfs走一波水水的就过了;#include<cstdio>#include<cstring>using namespace std;char str[10][

2017-11-08 22:55:48 233

原创 LightOJ-1220

///题意:将一个数n表示成n=a^b的形式,求b的最大值;///如果一个是完全平方方数,那么它的的分解由唯一分解定理加gcd的合并操作即可实现///这道题最骚的就是有负数的情况,这也是很烦(主要是那个题目给了最小的数据是2呀),后来看了debug才知道了我还是很单纯的;#include<cstdio>#include<cstring>#include<iostream>#include

2017-11-07 13:05:41 255

ACM C++ stl 模板

ACM STL 模板 感兴趣的acmer值得下载吧.........................................................................................................................................................................................................

2018-06-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除