自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逐梦者

我本将心向明月,奈何明月照沟渠!

  • 博客(63)
  • 资源 (28)
  • 收藏
  • 关注

原创 HDU-1224-Free DIY Tour

ACM模版描述题解这道题貌似解法很多,可以dp,dfs,用得比较多的是dp,但是貌似更加适合最短路,看了前辈们的代码,十分有趣,对dij进行一些改造就可以解这道题,限制一下结点的选取也就OK了,并且这个是求最大价值,所以实际上是最长路,具体的思路和最短路是一回事儿ヾ(o◕∀◕)ノヾ代码#include <cstdio>#include <cstring>const int MAXN = 110;s

2016-11-30 23:56:02 335

原创 int abs(int n)实现对比

ACM模版abs()函数对比在C\C++的<math.h>和<cmath>中均有abs的实现,而今天心血来潮,另外手动实现了两个abs()函数,用来做一下对比,一种是通过关系运算符判断正负求解,一种是通过位运算求解,仔细看哦,很值得回味的测试……(PS:为了增大区别,每个函数的运算次数为MAXN次)。#include <cstdio>#include <iostream>#include <ct

2016-11-30 03:02:08 5150

原创 HDU-1385-Minimum Transport Cost

ACM模版描述 题解典型的Floyd题,需要存储路径,并且对路径有限制。真是一个磨人的题,debug到怀疑人生~~~代码#include <iostream>#include <cstring>using namespace std;/* * Floyd算法,求从任意节点i到任意节点j的最短路径 * cost[][]:初始化为INF(cost[i][i]:初始化为0) */const

2016-11-29 00:51:53 378 2

原创 HDU-1869-六度分离

ACM模版描述题解floyd搞搞事情,求任意两点之间的距离是否超过7,默认每条路径长度为1。代码#include <iostream>#include <cstring>using namespace std;/* * Floyd算法,求从任意节点i到任意节点j的最短路径 * cost[][]:初始化为INF(cost[i][i]:初始化为0) */const int MAXN = 1

2016-11-28 19:41:28 470

原创 HPU-1008-Mod

ACM模版描述 题解这是一道十分有意思的问题,刚拿到手时第一感觉就是找周期性,可是总感觉缺点啥,不知道怎么去实现,然后看到了郑大的学长方寸的代码,顿悟,真是一个十分巧妙的处理手法。首先,我们知道,这个序列中并不是所有的a[i]都对最后的结果能产生贡献,所以第一我们要删选出来能产生贡献的序列,这个序列a_[]一定是递减的,然后我们从最小的开始枚举构造周期性,不断用较大的a_[]来修正周期性,直到最后

2016-11-28 19:01:35 291

原创 HDU-4179-Difficult Routes

ACM模版描述 题解一道细节决定成败的题,一道英语决定成败的题……这是有限制的最短路问题,原本是无向图,但是因为限制,我们只能把它处理为有向图,这里的限制d规定,如果a点比b点的高度高,则d为0,反之则d等于高度差*100/投影距离,并且最短路中所有的边的难度必须小于题目给的上限,最重要的是,路径中至少有一条难度为该上限。那么,这道题首先是有向图最短路,而且需要枚举难度为上限的边,与起点和终点进行

2016-11-28 18:13:13 466

原创 HDU-3832-Earth Hour

ACM模版描述题解给定一些路灯,想要关闭尽可能多的路灯,但是要保证前三个路灯是连着的(光线交合重叠),最简单的应该可以通过Floyd求任意两点间的连线,但是不知道会不会超时,麻烦一些的是跑三次spfa。这里我要记录一个十分让我伤心的错误,提交了十几二十次才定位到了一个万万没想到的错误,第一次被这个地方坑,以致于查找bug时都没有把它当做嫌疑犯……在写程序时我们经常用INF代表无穷大,而INF到底多大

2016-11-27 23:23:23 516 1

原创 HDU-3631-Shortest Path

ACM模版描述题解Floyd插点法。对于我而言,又是新题型,每次遇见新题型,总是懵逼+555…百度吧,百度到了陈国林的题解。说一下我的大致理解吧,早先我们做的Floyd算法复杂度是O(n^3),产生这个复杂度的原因是涉及到了起点、中间点、终点,每次需要用中间点来更新不同起点和终点对儿的dis,一般上,我们都是把所有点都作为中间点枚举一遍,但是这里题目出现了一个问题,只有被标记的才能作为中间点,所以我

2016-11-26 19:13:38 500

原创 HDU-1839-Delay Constrained Maximum Capacity Path

ACM模版描述题解第一次做这种组合算法题,二分+dij,没做过很难想到这样子搞,于是参考了大牛shuangde800的代码和题解。该大牛的题解分析道:因为每条路径的容量取决于这条路径中所有边中的最小容量,所以我们可以以此枚举最小容量。 但是如果一个一个容量的枚举,那明显效率太低了。 通过分析,可以看出,如果最低容量越大,那么符合要求的路径就越少,所以,根据容量的大小,路径数量是单调的。 有了单

2016-11-26 17:19:16 371

原创 HDU-1599-find the mincost route

ACM模版描述题解求最小环,题上说的十分清楚,是无向图,所以要求环的结点最起码要有三个,也就是说,K>2,如果是有向图,那么结点最少可以是两个……模版题,直接套~~~用Floyd求解。代码#include <iostream>using namespace std;const int INF = 0x3f3f3f3f;const int MAXN = 110;int n, m;

2016-11-26 16:12:26 373

原创 HDU-3986-Harry Potter and the Final Battle

ACM模版描述题解这道题和 HDU 1595 find the longest of the shortest一样,都是删掉任意一条边的最长最短路,不同的是,一个没有重边,一个有重边。1595我是用邻接矩阵+dij搞的,但是这道题因为重边,所以邻接矩阵看样子不能搞,但是实际上是可以的,只要再开一个矩阵用来存次短边,因为会涉及到的边就是最短和次短。可是这种写法超时了,因为dij的复杂度略高了(代码On

2016-11-25 21:42:34 441

原创 HDU-1595-find the longest of the shortest

ACM模版描述 题解先dij一遍,求出0到n-1的最短路径,然后枚举每一段,求出删除该段时的最短路,最后求所有情况的最短路径的最大花费。多次dij搞搞。这里需要记住的是,对dij要进行一个改造,不能每次都动pre[](最短路路径),只有第一次求的时候才会对它下刀。最后调戏一下下javaer,如果说,存在某种题只能被其他语言AC而不能被JavaAC,那么这道题就是啦~~~代码#include <io

2016-11-25 17:54:17 391

原创 HDU-2807-The Shortest Path

ACM模版描述题解看懂了题意就十分直观了,AB=C就连接AB,当然是有向的,只能连接A->B,反之不能。所以这里涉及到了矩阵乘法和矩阵判等,这样就可以建立起图了,然后求任意两点间的距离或者连通性,用Floyd搞搞事情~(≧▽≦)/~啦啦啦这里对于矩阵的判等复杂度一般为O(M^2),可以通过乘以向量来降阶,得到标志阵进行对比,复杂度为O(M),这就快很多了~~~代码#include <iostream

2016-11-25 16:57:58 455 1

原创 HDU-2050-折线分割平面

ACM模版描述题解递推,找规律,规律随便懵的,没成想对了……为了方便我们描述,我们把第i条折线的两段分别表示未Li1,Li2。首先,当n等于0时,平面是一个部分,当n等于1时,先来考虑L11,这时候平面没有线段,那么他能贯穿的线段为0,所以添加这条线可以增加一个部分,然后考虑L12,此时除去L11外,他可以贯穿的线段为0,所以添加这条线段可以增加零个部分,为什么前者可以增加的比后者多一呢?这是因为两

2016-11-24 23:29:01 517

原创 NYOJ-46-最少乘法次数

ACM模版描述题解对n不断拆解即可。代码#include <stdio.h>#include <string.h>int main(){ int T; scanf("%d", &T); while (T--) { int n; scanf("%d", &n); if (n == 1) {

2016-11-24 00:18:52 560

原创 HDU-2224-The shortest path

ACM模版描述题解双调旅行商问题,还不是太懂这个问题,暂时扣模版,今天晚上好好看看算导研究研究传说中的NP~~~代码#include <iostream>#include <cmath>#include <cstdio>using namespace std;const int MAXN = 1005;const int INF = 0x3f3f3f3f;struct node{ d

2016-11-23 22:20:37 391

原创 双调欧几里得旅行商

ACM模版双调旅行const int MAXN = 1005;const int INF = 0x3f3f3f3f;struct node{ double x, y;} P[MAXN];double dist(node a, node b){ return sqrt((b.x - a.x) * (b.x - a.x) + (b.y - a.y) * (b.y - a.y));

2016-11-23 18:35:46 531 1

原创 HDU-3339-In Action

ACM模版描述 题解最短路+背包。第一次做将这两种算法组合的题,好题。要求最少油耗使得系统瘫痪,而瘫痪的要求是控制的能量超过一半,那么前者很容易想到需要先求最短路,但是求过最短路后并不是每一个电厂都要占领,要保证占领的电厂的总能量超过一半并且耗油最少,这就是01背包的问题了~~~代码#include <cstdio>#include <cstring>#include <algorithm>u

2016-11-23 17:25:47 364

原创 HDU-2923-Einbahnstrasse

ACM模版描述 题解好长的英文题,看得我都心碎了~~~百度了一下大意: 三个数字n、c、r,n代表城市的个数,c代表损坏的车辆的数量,r代表有几条路,然后接下去有c+1个字符串,第一个代表拖车公司的所在地,后面的c个地点表示损坏的需要拖回来的车辆所在地。在接下去r个字符串,代表r条路,左右为两个城市名,中间的一串字符中,只含有<-代表该条路是从右边的城市通向左边的,以此类推,而数字代表该条路的长

2016-11-23 16:03:46 465

原创 HDU-2680-Choose the best route

ACM模版描述题解典型的最短路,想从多个车站中挑一个出发到达终点站s,要求路径最短,这里是有向图,所以,如果我们按照正向建图,则需要进行多次dij,这明显是有可能超时的,所以我们需要反向建图,然后求从终点站到其他站的最短路,最后求得最小的最短路即可。代码#include <iostream>#include <cstring>using namespace std;const int MAXN =

2016-11-21 19:37:39 429

原创 HDU-1546-Idiomatic Phrases Game

ACM模版描述题解模版大法好~~~最短路模版题,不过需要进行一些处理来建图。题意:已知成语至少有3个汉字,每个汉字用4个字符(十六进制数)表示,成语接龙游戏,求从第一个成语接到最后一个成语的最小花费。读取字符串后,对前四位以及后四位十六进制字符进行转进制,转为10进制,存储起来,然后判断首尾衔接关系,建立图,然后最短路搞搞事情啊!代码#include <iostream>#include <cst

2016-11-21 18:29:27 337

原创 HDU-1535-Invitation Cards

ACM模版描述题解每次做题都是读一遍题没读懂,然后就去看翻译……真心塞。这道题题意是求从1号结点到所有结点的最短路之和,然后再返回1号结点的最短路之和的和。比较直观的使用SPFA搞搞,但是这是单源最短路,求第一个过程很容易,可是第二个过程如果死板硬套,那么需要进行n-1次SPFA,加起来也就是n次SPFA,这样必然会超时的,所以我们需要反向建图,因为从其他结点到1号结点的最短路如果反向一下,不就是从

2016-11-21 17:09:18 400

原创 HDU-1317-XYZZY

ACM模版描述题解先使用Floyd扫描一遍,判断连通性,当然,这种方法不是最好的,但是是最简单的,毕竟实现起来十分容易,网上清一色都是用Floyd扫描的,如果有这一步处理的话,这里使用其他的手段也是可以的,方法多种多样,不处理也是可以的,然后使用BellmanFord算法跑跑就可以了。代码#include <iostream>#include <cstdio>#include <cstring>

2016-11-21 02:06:43 566

原创 转瞬得改变

曾经一谈到大学后是否考研,我就是信誓旦旦的一口否决,我一定不会考研,但是,这周五(即11月18日),我在短短的30s改变了自己坚守了一年的答案!!!我的目标一直以来都是算法工程师,虽然算法工程师要求的学历十分高,可是因为我的英语十分差,我并没有打算考研。我和英语对着干了十余载,一直处于劣势,干不过啊~~~所以,对考研心生畏惧,可是,周五时,看到了一猎头在IT群里发了一个招聘信息,我发现,这恰恰是我想

2016-11-20 22:01:02 716 7

原创 趣味代码:水果动物派对

看到网上有类似的代码截图,但是没有找到源码,只好自己写了一份~~~但是markdown不识别这些符号,所以,搞几张截图和一个识别这些符号的链接吧~~~感觉这个十分有趣,但是没啥技术含量。paste.ubuntu源码链接~~~

2016-11-20 21:44:40 1531

原创 HDU-1245-Saving James Bond

ACM模版描述题解给定一个100X100的池子,中间(0, 0)处有一个直径为15的岛,然后湖中有许多踏点,问能否踩着踏点蹦跶出来,当然,有一个最远的蹦跶的距离d。思路很清晰,最短路,只要求出两两点之间的距离加以处理,然后把岛当做源点,湖外当做终点,添加与其他点对应的路径信息即可,这里有一个问题是,精度十分高,并且数据强度十分高,也就是说,当路径长度一样时,要求输出的第二个步数要尽量小,那么也就是模

2016-11-14 18:41:42 357 1

原创 HDU-1217-Arbitrage

ACM模版描述题解真是炸了,题倒是十分简单,无非是求任意两点之间的最短路(变种,其实不是求最短,而是求最大连乘),之间用Floyd搞搞就行,可是,我一开始用结构体存储,却一直出现bug,到现在我都没有找到问题在哪儿(代码One),求大神们一瞥,给予我些许建议……之后,我只好把结构体去了,直接开二维数组存,顺利AC(代码Two),真是个让人悲伤的故事……代码One:// WA//#include

2016-11-12 20:38:21 432 4

原创 HDU-1874-畅通工程续

ACM模版描述题解最短路搞搞事情啊~代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;/* * 单源最短路径,Dijkstra算法,邻接矩阵形式,复杂度为O(n^2) * 求出源beg到所有点的最短路径,传入图的顶点数和邻接矩阵cost[][] * 返回各点的最短路径lowcos

2016-11-12 17:58:34 272

原创 HDU-2112-HDU Today

ACM模版描述题解字典树+最短路即可,糟糕的题目,表达有些问题,导致理解错了N……,还是我太渣了。一开始以为需要搞个N*N的矩阵(代码One),会爆内存,然后就用了堆优化(邻接表,代码Two),可是因为没有正确理解N的表示,还是超时了,改了改对了。代码One:#include <iostream>#include <cstring>#include <map>using namespace st

2016-11-12 17:30:11 300

原创 HDU-2066-一个人的旅行

ACM模版描述题解很基础的最短路,可是有些逗逼的是,需要默认草儿家到相邻城市花费为0,草儿家也可以默认为0号城市。代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;/* * 单源最短路径,Dijkstra算法,邻接矩阵形式,复杂度为O(n^2) * 求出源beg到所有点的最短路径,传入

2016-11-12 14:48:49 833

原创 HDU-3790-最短路径问题

ACM模版描述题解虽然是最短路,但是有坑,首先题目中没有提到重边问题,这里需要先判断重边,去除重边,接着,要求,满足路径最短的情况下花费最小,一开始是先求最短路,然后把最短路上的花费累加起来,后来发现,这是错误的,因为有可能存在最短路不止一条,所以需要求最小的花费,所以,不能把这两部分分开求,需要一起搞~~~还是模版,毕竟周星星是一本漫画走天下,而我是一本模版玩ACM……代码#include <io

2016-11-09 21:34:36 645

原创 HDU-2544-最短路

ACM模版描述题解基础最短路,只要会套模版,就能A。代码#include <iostream>#include <cstring>using namespace std;/* * 单源最短路径,Dijkstra算法,邻接矩阵形式,复杂度为O(n^2) * 求出源beg到所有点的最短路径,传入图的顶点数和邻接矩阵cost[][] * 返回各点的最短路径lowcost[],路径pre[],

2016-11-09 19:25:20 368

原创 HDU-1548-A strange lift

ACM模版描述题解猛一看,是经典的bfs啊,当然,bfs真的可以滴,但是这是在最短路专题的,然后转念一想,真有趣啊,只要把能连通的全部置为1,这样不就可以求最短路了?这是个谜一样的题,好久前做过相似的题,我却没有想到可以用最短路搞搞!!!代码#include <iostream>#include <cstring>#include <cstdio>using namespace std;/*

2016-11-09 00:34:48 367

原创 HDU-3183-A Magic Lamp

ACM模版描述题解可以用RMQ搞搞,这里需要说的是,给了一个n位数,去掉m位数,那么可以肯定的是1到m+1区间中最小的数必定是第一位,记第一位数位为pos(第一步),那么pos+1到m+2中的最小的数必定是第二个数字(第二步),以此类推,贪心查找。这也很好理解的,因为最极端的可能就是,第一步,m+1后的几位全部是留下来的,第二步,m+2后的几位全部是留下来的……这里使用RMQ也行,不使用直接贪心也行

2016-11-08 01:21:26 334

原创 HDU-2888-Check Corners

ACM模版描述题解二维RMQ,给定一个n*m矩阵,q次询问,每个询问给出一个子矩阵的左上角和右下角坐标,要求出这个子矩阵中的最大元素然后输出,并且,这个最大元素和子矩阵四角对比,只要和其中一个元素相等,就输出yes,否则输出no。代码#include <iostream>using namespace std;/* * 二维RMQ,预处理复杂度 n*m*log*(n)*log(m) * 数组

2016-11-07 23:24:26 326

原创 HDU-3486-Interviewe

ACM模版描述题解给定n个数,分为m个区间,保证m个区间的元素数目都是一样并且尽可能多,剩余的无法均分的则舍去,忽略。网上见到很多人这道题都是二分+RMQ写得,但是,实际上是有问题的,因为并不是段数越多,值就越大,比如说:3 4 55 55 2 3,如果分为三段,结果4+55+3=62,而如果分为两段,55+55=110了,所以说这道题需要枚举+RMQ,可是这里如果不剪枝会特别悬,很有可能TLE,这

2016-11-07 19:57:01 739

原创 HDU-2874-Connections between cities

ACM模版描述题解LCA问题,有离线和在线两种解法,这里使用的是在线ST算法,需要注意的是,这里的不是一个连通块,所以需要进行多次dfs(),一次LCA_init()就行了,另外这里需要用到并查集,因为两个点没有连通时要输出Not connected,而判断是否连通并查集最合适了(最起码我的认知中是这样)。代码#include <iostream>#include <cstring>#inclu

2016-11-07 19:11:44 456

原创 HDU-2586-How far away ?

ACM模版描述题解由于英语不好,猛一看,以为是最短路,然后发现,竟然有这么多次查询,所以果断想到了LCA,求最近公共祖先。求最近公共祖先,方法很多,主要分为离线和在线两种,离线算法比较好的是Tarjan算法,在线比较好的是ST算法,这里使用ST算法搞搞事情。定义一个dir[]数组在dfs时存储一下每个节点到根的距离,最后结果便是dir[u] + dir[v] - 2 * dir[lca],lca是u

2016-11-07 15:13:51 319

原创 HDU-3311-Dig The Wells

ACM模版描述题解斯坦纳树,模版题,状压dp,还是无法很好地理解,找了大牛们的blog,感觉好高大上……以下来自Staginner大牛的博客……这个和一般的斯坦纳树的题目不同的地方在于挖井要加点权,但是仔细分析一下不难发现,如果1-N作为斯坦纳树的叶子节点一共有两种状态,要么挖井要么不挖井,而其他点做为叶子节点只有一种状态,就是必须挖井,否则由于这个节点就可以被删去就一定不会是最优的方案。在dp之前

2016-11-07 01:34:50 733

原创 HDU-4009-Transfer water

ACM模版描述题解最小树形图,模版题,之所以这么说有两个原因,第一,真的是模版,第二,我只会套模版,增加超级源点搞搞。如果有比较好的最小树形图的算法资料,欢迎推荐~~~代码#include <iostream>#include <cmath>#include <cstring>#include <cstdio>using namespace std;/* * 最小树形图 * int型

2016-11-07 00:40:33 341

EMACS 编辑器入门

EMACS 编辑器入门 pdf

2018-05-26

ACM 国际大学生程序设计竞赛-算法与实现

ACM 国际大学生程序设计竞赛-算法与实现 pdf

2018-05-26

一站式学习 C 编程

一站式学习 C 编程 pdf

2018-05-26

算法设计与分析(第2版)

算法设计与分析(第2版)pdf

2018-05-26

设计模式:可复用面向对象的基础

设计模式:可复用面向对象软件的基础.pdf

2018-05-26

移动机器人调研报告

移动机器人调研报告.doc

2018-05-26

软件工程调研报告

近期对软件工程进行了一次小小的调研,写了这份软件工程调研报告,也许存在一些问题,欢迎大佬们指点。欢迎━(*`∀´*)ノ亻!

2018-05-26

软件工程讲义-软件工程电子书 PPT

软件工程讲义-软件工程电子书 PPT

2018-05-26

NOI 知识点

某中学 NOI 教练总结的,发给我学习,分享给大家,总结的还算是可以的。

2018-05-26

尼姆博弈 PPT

感觉挺不错的一个 PPT,适合入门看看,高手绕行。

2018-05-26

动态规划 PPT

姜太公钓鱼愿者上钩,我也不知道这个资源如何,所以酌情下载。

2018-05-26

C语言趣味程序设计编程百例精解

姜太公钓鱼愿者上钩,我也不知道这个资源如何,所以酌情下载。

2018-05-26

九种排序算法

九种排序算法!!!C 语言版的~~~希望对您有所帮助。(#^.^#)

2018-05-26

OI国家集训队论文集1999~2016

1999 年到 2016 年的一些 OI 国家集训队论文,比较多,慢慢啃吧!!!

2018-05-20

佐理慧学姐的数论总结

佐学姐分享的资源总结,挺不错的,可以好好看看。强势推荐~~~

2017-11-02

ACM模板-f_zyj 更新(内含 v 1.1 和 v 2.1 的 .pages 格式和 .pdf 格式)

总是有朋友问我啥时候更新一下自己的模板,我一直拖着没有更新,因为一次更新的时间花费太高了,我一直都想再等等,再等等就更新,可是现在大概是等不了了,快要退役了,这大概是最后一次更新了吧?希望对大家有用。

2017-09-21

十五个经典算法

十五个经典算法的深度剖析。

2016-12-05

经典算法大全

经典的算法问题。

2016-12-05

完全图匹配

完全图匹配数目。

2016-12-05

STL基础教程

一个全面的STL基础教程~~~

2016-12-05

ACM模板-f_zyj

事有烦而不可省,费而不得已,盖此为也!!!

2016-12-05

博弈论之巴什游戏

一个很好地博弈论讲义,希望对大家有所帮助。

2016-07-28

博弈论之威佐夫游戏

一个很好地博弈论讲义,希望对大家有所帮助。

2016-07-28

空空如也

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

TA关注的人

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