自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员充电站(itcharge)

高效率编程,慢节奏生活。

  • 博客(59)
  • 资源 (4)
  • 论坛 (2)
  • 收藏
  • 关注

原创 HDU1977 Consecutive sum II【水题】

题目大意:递推,输入N,输出为N*N*N (N+1)*(N+1)*(N+1)

2014-12-31 23:25:41 1072

原创 HDU1898 Sempr == The Best Problem Solver?【水题】

题目大意:两个选手做题速度一样,第一个喜欢每A分钟将当前题目提交,第二个喜欢每B分钟将当前题目提交。问:有T分钟,谁做的比较多。思路:直接比较谁剩的多就可以了,水的不能再水了。。。

2014-12-31 23:11:04 2013

原创 HDU2586 How far away ?【最近公共祖先】【Tarjan-LCA算法】

题目大意:一个村庄有N个房子和一些双向的路,人们总是喜欢问"A到B有多远呢",一般是很难回答的,毕竟有很多种答案。所幸,答案是唯一的,A到B总是有唯一的路径到达。第一行是T组数据。每组数据第一行是N个房子和M条询问。接下来N-1行每行是u v w,表示从房子u到房子v的距离是w。接下来是M行询问。每行是u v,表示询问房子u到房子v的距离,最后输出所有的询问结果。思路:整个村庄房子和路可看成一棵树,设根结点为房子1,询问u到房子v的距离,其实就是求u到根结点的距离 + v到根结点的距离 - 2*

2014-12-31 21:53:16 1101

原创 POJ1986 Distance Queries【最近公共祖先】【Tarjan-LCA算法】

题目大意:John是一个农场主,他的牛很懒,拒绝按照John选的路走。John不得不找一条最短的路。这道题的输入前半部分和POJ1984"Navigation Nightmare"相同。在每组数据之后是一个整数K,接下来K行是询问(u,v)的曼哈顿距离(u,v是农场编号)。最后输出所有询问结果。POJ1984链接:http://poj.org/problem?id=1984思路:本题输入有些特殊,给出的是某点在某点的某个方向(东西南北)有多远。由于输入数据比较特殊。全部是有向边,且构不成回路,所

2014-12-31 21:02:06 3346

原创 POJ1330 Nearest Common Ancestors【最近公共祖先】【Tarjan-LCA算法】

题目大意:给你一棵树,有N个结点,N-1条边。最后询问距离树上两个点(u,v)最近的公共祖先是多少。比如上图:6和16的最近公共祖先就是4;14和1的最近公共祖先就是1。思路:对于最近公共祖先LCA问题,最经典的离线算法是Tarjan-LCA算法。用链式前向星存储图和询问,Head[]和Edges[]表示图(树),QHead[]和QEdges[]表示询问。集合的操作用并查集实现。这道题里用了indegree[]数组来存储结点的入度,找到入度为0的根结点root,调用LCA(root)。Tarj

2014-12-31 20:42:20 785

原创 HDU2121 Ice_cream’s world II【最小树形图】【不定根】

题目大意:一个国家有N个城市,M条有向道路,国王想要选一个城市为首都,使得这个城市既能连接所有的城市,而且总的路程最短。若能找到这个城市,则输出最短路程和城市编号。思路:求有向图的最小树形图,不过根节点是不定的。虚拟一个根结点,到每个结点都有一条边,其到每个结点的权值应该相等,表明每个结点都应该且都有机会当根。且边的权值应比总权值大一些。如果最终算出的最小树形图的总权值大于或等于 原图的总权值 + 虚根到实根(也就是原图的总权值),其实就是算出的最小树形图的总权值大于或等于 原图总权值的二倍,

2014-12-30 23:20:42 1272

原创 HDU4009 Transfer water【最小树形图】【不定根】

题目大意:一个村庄被洪水摧毁了,整个村庄都要转移。但是山上没有泉水,每户家庭只能在自家挖一个水井或是修一个水渠从别的家庭引水。如果要修井,则修井费用和房子所在海拔高度有关,每米X元。如果从别人的家里引水,如果从高于自己家高度的人家里引水,费用为每米Y元。如果从低于自己家高度的人家里引水,每条要多花费Z元。现在给你这个村庄N个家庭房屋的坐标(a,b,c)和三种花费X,Y,Z。接着给你各家之间能单向修建引水沟渠的限制。问:能使全村庄的人喝上水的总修建费用最低为多少。若不能,则输出"poor XiaoA

2014-12-29 23:05:21 994

原创 POJ3164 Command Network【最小树形图】【朱刘算法】

题目大意:长时间战争过后,一场战争终于切断了Littleken和KnuthOcean王国的联系。Littleken的指挥网络瘫痪了,现在最重要的事是建立一个临时的通信网络,这个任务交给了Snoopy。Snoopy觉得最重要的一点是要把命令传到被摧毁的网络中的每一个点上,所以他决定先建立一个单向的传输网络。假设所有的传输节点都分布在一个平面上。如果Littleken的命令想要从节点A传送到节点B上,必须建立一个单向电缆从节点A连接到节点B。为了尽可能节省资源,要求通信网络所用的电缆长度最小(参考A

2014-12-29 20:46:09 1568

原创 HDU4081 Qin Shi Huang's National Road System【Kruskal】【次小生成树】

题目大意:有N个城市,秦始皇要用N-1条路将他们全部连起来,秦始皇希望这N-1条路长度之和最短。这时候,徐福跳出来说他有魔法,可以凭空变出其中任意一条路来。秦始皇希望徐福将N-1条路中最长的那条路变出来,但是徐福希望把修路要求人数最多的那条路变出来(每条路修路的人力是两座城市的人口和)。最终,秦始皇给出了一个公式 A/B徐福变出的那条路所需人力/除了这条路之外的N-2条路的和 最大。简化大意为:给你N个城市的坐标(x,y)和人口。 得到他的最小生成树之后,去掉最小生成树上的一条边,使得这条路

2014-12-28 22:20:37 1007

原创 POJ1679 The Unique MST【Kruskal】【次小生成树】

题目大意:给你N个点M条边的图,问:图的最小生成树是否唯一。思路:参考算法书,在kruskal算法的基础上进行修改,加入(x,y)两点在最小生成树上路径最长的边的计算。使用了链式前向星记录每个集合中含有那些点。在合并集合(邻接表)的时候,为了方便,加入了End[]记录邻接表尾节点的位置。MST表示最小生成树的大小,SecMST表示次小生成树的大小。最后判断是否想等即可。

2014-12-28 00:02:05 3044

原创 HDU2988 Dark roads【Kruskal】

题目大意:给你N个点M条路的图,点的变化由0~N-1,求最小生成树。思路:裸的Kruskal算法,直接求就可以。

2014-12-27 13:34:59 1096

原创 HDU3371 Connect the Cities【Kruskal】

题目大意:首先是T组数据,之后每组第一行是N M K,表示N个城市,M条路的信息,和已经连接上的K个城市信息。接下来M行每行是城市A到B建路需要的花费。再接下来K行每行第一个数为t,之后t个数表示已经连接在一起的城市。简单说,就是给你N个城市和M条路的花费,再给你已经联通的城市,求连接所有城市的最小生成树总权值是多少。思路:用kruskal算法来做,先把联通的城市并入集合,再依次并入边权值最小的边,直到并到N-1条边,就生成了最小生成树。如果并完了没有达到N-1条边,就是不能联通,输出"-1"。

2014-12-27 11:07:12 715

原创 HDU1162 Eddy's picture【Prim】

题目大意:给你N个点的坐标,求能使这N个点相连的所有边的最小距离是多少。思路:先求出每个点和其他点的距离,存到图中,用Prim模板来做。

2014-12-25 16:18:10 1264

原创 HDU1875 畅通工程再续【Prim】

题目大意:给你几个岛的坐标,只有两个岛的距离在10~1000米范围内的岛才能建立道路。每米道路花费100元。问:能否建立连接全部岛屿的道路。若能,输出建立道路的最小花费;若不能输出"oh!"。思路:主要是建图问题,纠结在Prim上半天,最后才发现只要建图的时候多想想就好了。建图的时候,只有满足条件的才能赋值距离,否则就为INF(假设的无穷大)。Prim求最小生成树的时候,若没有找到与当前链接岛屿最近的满足建造条件的道路,就直接输出"oh!",并退出。否则就继续查找,直到最后输出最小花费。

2014-12-25 10:37:56 856

原创 HDU1301 Jungle Roads【Prim】

题目大意:给你一个用前N个村庄,村庄用字母表的前N个字母表示,接下来N-1行表示第字母X与其相连的村庄数目,及其相连的村庄字母和两个村庄的距离,求最小生成树。思路:Prim模板题。

2014-12-24 23:14:19 749

原创 HDU1879 继续畅通工程【Prim】

题目大意:N个村庄之间修路,有的路已经修了,有的路没有修。给你N个村庄间修路的花费和修建状态,问:最少需要再花费多少钱能将N个村庄全部联通。思路:已经修建过的路花费赋值为0,Prim算法求最小生成树。

2014-12-24 16:18:06 837

原创 POJ1258 Agri-Net【Prim】

题目大意:给你一个N个点的矩阵图,求所有点相连的最小生成树。思路:直接裸的Prim算法。

2014-12-24 16:00:44 702

原创 HDU1785 You Are All Excellent【余弦】【水题】

题目大意:给你几个队员的坐标点,已知坐标向量与x正向的夹角越小队员能力越大,能力从大到小输出队员的坐标点。思路:刚开始想用正弦,但是,x = 0的时候会错。所以要用余弦比较。但是不知到为什么C++提交就对,G++提交就错

2014-12-24 07:19:36 916

原创 HDU1233 还是畅通工程【Prim】

题目大意:给你一个图,求连接所有点的最短路径。思路:Prim算法求图的最小生成树,模板题。

2014-12-23 22:36:35 783

原创 图的五种种存储方式【图论】

运用五种方式来实现图的存储,以适应不同的情况。方式1:邻接矩阵方式2:前向星方式3:邻接表——动态建表方式4:邻接表——vector模拟链表实现方式5:邻接表——链式前向星★

2014-12-23 20:41:38 2452

原创 POJ2230 Watchcow【欧拉回路】

题目大意:给你一个N个点的图,M条双向边,从原点1出发,两个方向各走一遍,最后回到原点。输出整个路径。从1开始,到1结束。共2*M+1行。思路:DFS遍历,vis数组标记已遍历的边。最重要的地方是在哪里保存路径。因为DFS函数的结束顺序就是点的回溯顺序,所以应该在DFS回溯完之后再记录当前点的序号,也就是now的值。

2014-12-23 08:46:04 1046

原创 HDU1718 Rank【水题】

RankTime Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3980    Accepted Submission(s): 1539Problem DescriptionJackson wants to

2014-12-22 23:04:12 1552

原创 HDU1708 Fibonacci String【水题】

Fibonacci StringTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3652    Accepted Submission(s): 1259Problem DescriptionAfter

2014-12-22 22:59:49 669

原创 HDU1678 Shopaholic【水题】

ShopaholicTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1754    Accepted Submission(s): 975Problem DescriptionLindsay is a

2014-12-22 22:56:46 752

原创 HDU1673 Optimal Parking【水题】

Optimal ParkingTime Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1804    Accepted Submission(s): 1521Problem DescriptionWhen s

2014-12-22 22:55:01 883

原创 HDU4324 Triangle LOVE【拓扑排序】

题目大意:给你一个图,图中任意两点之间要么有正向边,要么有反向边。判断是否含有a->b->c->a的三角形环。思路:其实只要有环,就能构成三角形环。因为任意两点之间要么有正向边,要么有反向边。如果现在有一个四元素环 a->b->c->d->a,若a不指向c,则c必定指向a,所以必定存在三角形环。直接拓扑排序,如果不能排序,则有三角环,输出“Yes”,能拓扑排序,则不含有三角环,输出"No"。

2014-12-22 22:47:19 1249

原创 HDU1285 确定比赛名次【拓扑排序】【优先队列】

思路:因为要满足字典序的拓扑排序,所以用了STL中的优先队列。priority_queue<int,vector<int>, greater<int> > Q;实现了权值小的优先级高,取出的时候保证序号是队列中最小的。其他的和一般的拓扑排序无区别。

2014-12-22 22:22:36 991

原创 HDU2647 Reward 【拓扑排序】

题目大意:老板要发酬劳,但是工人酬劳不一样,有N个人,M种情况。a的酬劳一定要高于b。每个人最低酬劳为888,问:老板最少要花费多少钱。思路:以b->a为有向边建立拓扑排序,不满足排序就输出"-1",否则就进行拓扑排序,将拓扑排序的点看成一层一层的,无入度的为第一层,通过一条边能走到的为第二层。通过两条边才能走到的为第三层。每一层都比前一层多一块钱。最后输出总钱数。

2014-12-22 15:50:20 750

原创 HDU4857 逃生【逆拓扑排序】

逃生思路:刚开始以为直接拓扑排序就可以,其实不然。题目的意思是:如果有满足拓扑排序的多种情况的前提下,让1先尽量靠前,满足1尽量靠前之后,让2尽量靠前,而不是直接的字典序。比如:4 23 24 1结果应为4 1 3 2,而不是3 2 4 1。所以进行反向建边,然后拓扑排序,用链式前向星存储图,为了使得序号小的点尽量靠前,所以用优先队列存储将入度为0的点,在逐一取出,遍历该点的边,就使得大的点尽量靠前,最后逆序输出就可以了。Time Limit: 2000/1000 MS (J

2014-12-22 14:57:51 934

原创 HDU3342 Legal or Not【拓扑排序】【链式前向星】

题目大意:给你一个有向图,判断是否有环。思路:构建拓扑排序,如果排序失败,说明该有向图存在有向环。另一种思路,用链式前向星存储图,在数据输入的同时统计每个点的入度,并存入indegree数组,每删除一个点,就遍历以这个点为起点的边,将边对应的入度减1即可选择并删除下一点。用队列来存储已发现的入度为0的点,更新入度的同时更新这个队列。如果最终得到队列中的元素个数小于总的元素个数,说明排序失败,存在环。

2014-12-19 20:59:07 1250

原创 HDU1035 Robot Motion【链式前向星】

题目大意:给你一个n*m的矩形图,每个位置上有'N'、'S'、'W'、'E',分别表示上下左右四个方向。给你初始位置,如果能走出去了, 输出走出去的步数。如果成环了,就输出环走一圈需要多少步。思路:用链式前向星来做,把图看做是n个点,每个位置就是一条边,将边用链式前向星存起来,每条边就有了一个序号,这个序号就是走的步数。然后,每走一步,我们就开始判断是否在之前存储过这个位置(这条边),如果存储过就跳出循环,输出已存在这个位置的序号(就是走圈前的步数),再输出总序号-已存在那个位置的序号(就是走圈

2014-12-18 15:21:41 959

原创 最大公约数、最小公倍数【模板】

功能:求a和b的最大公约数传入参数:整数a、整数b传出参数:a和b的最大公约数算法1:欧几里得算法时间复杂度:O(n)实现原理:设两数为a、b(a>b),求a和b最大公约数(a,b)的步骤如下:用b除a,得a÷b=q......r1(0≤r1)。若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b÷r1=q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止。其最后一个非零除数即为(a,b)。算法2:s

2014-12-18 12:59:20 1923

原创 HDU2438 Turn the corner【三分法】【数学几何】

题目大意:有一个直角拐角,给你水平道路宽度Y和竖直高度X,再给你汽车的长l,宽w问:汽车是否能通过这个拐角。思路:如果汽车的宽度大于水平道路宽度Y或是竖直高度X,无论如何都通不过。接下来考虑一般情况。如图:若汽车最左边与墙一直靠紧,则只需要判断右边最高点是否超过了Y。设θ为汽车与水平方向的夹角,s为汽车最右边的角到拐点的水平距离。那么s = l*cos(θ) + w*sin(θ) - x,从而得出 h = s*tan(θ)+w*cos(θ)。θ角从0~π/2,变化,h则从低到高再到底,且是一个

2014-12-17 09:34:56 1062

原创 HDU2553 N皇后问题【回溯法】

题目大意:N*N的棋盘上放N个皇后,N个皇后不能出现在同一行,同一列或是同一斜行。思路:直接枚举判断太慢了,考虑到每行每列只有一个皇后,那么用一个数组C[x]表示第x行放置的皇后所在的列编号,即x表示行,C[x]表示列。判断是否和前边所放皇后冲突可以判断当前第cur行与之前的0~j行是否冲突。C[cur] == C[j] || cur-C[cur] == j-C[j] || cur+C[cur] == j+C[j]分别判断是否在同一列,同一主对角线,同一副对角线上。但是还可以继续优化。直接用一个

2014-12-16 09:26:59 1024

原创 UVA725 Division【枚举】

题目大意:输入一个正整数N,要求从小到大的输出形如abcde / fghij = n的表达式。要求a~f为数字0~9,且不能重复(前边可有0)。思路:如果将a b c d e f g h i j全部遍历的话,复杂度是10!,没有必要,直接枚举f g h i j,然后算出a b c d e,去判断是否存在重复数字即可。

2014-12-15 09:04:01 2435

原创 NYOJ116 士兵杀敌(二)【树状数组】

题目大意:给你一个区间[1,N],每一个点上一个值。接下来是M条命令。QUERY X Y表示询问区间[X,Y]的和是多少。ADD X Y表示第X个点增加Y。思路:可用线段树或是树状数组来做。这次用树状数组试试。query(n);表示询问前n项的和。add(p,val)表示第p个点增加val。

2014-12-13 22:19:10 848

原创 NYOJ108 士兵杀敌(一)【树状数组】

题目大意:给你一个区间[1,N],每个点上有一个值,然后是M个询问。每次询问区间[X,Y]的和是多少。思路:虽然递推直接求前N项和,但是还是想用树状数组的方法做。注:query();询问前N项和

2014-12-13 18:23:22 922

原创 NYOJ93 汉诺塔(三)【栈】

题目大意:上边说的很明白了。思路:就是用三个栈进行模拟过程并判断就可以。

2014-12-13 14:45:30 912

原创 NYOJ35 表达式求值【栈】

题目大意:给你一个计算表达式,求出最终结果。思路:用两个栈来分别存数和操作符, 遇到'(',操作符入栈,遇到')',计算括号内的式子。遇到'+'、'-'、'*'、'/'就比较当前运算符与栈中运算符的优先级,大于等于于栈中优先级就计算,否则就入栈,留待下次计算。最后计算栈中剩下优先级低的相应式子

2014-12-13 12:10:51 949

原创 UVA10305 Ordering Tasks【DFS】【拓扑排序】

题目大意:有n个变量,和m个二元组关系。关系(x,y)表示x<y。现在讲所有变量从小到大来排序,进行输出。例如:有4个变量a、b、c、d,若a<b,c<b,d<c,则排序后的可能为a<d<c<b,也有其他可能d<a<c<d。只要输入其中一个就可。思路:把n个变量看成是n个点,“x<y”看做是一条边,则得到一个有向图。对图的节点进行排序,使得每一条有向边(x,y)对应的x都在y前边。即所谓的拓扑排序。DFS进行拓扑排序,如果存在有向环,则不存在拓扑排序,否则就将访问完的结点假如到当前拓扑序列的前

2014-12-12 20:19:34 1046

2014年北大ACM暑期培训资料、讲义

北京大学的ACM国际大学生程序设计竞赛(ACM/ICPC)水平在国内处于领先地位,自2005年至2013年每年均参加总决赛,名次分别为11(铜牌)、13、14、13、20、14、13,13,13,13。北京大学多次承担ACM/ICPC亚洲区预选赛命题,广获好评。近几年负责命题的赛区有:2008年北京赛区,2009年宁波赛区,2010年杭州赛区,2010年福州赛区,2011年北京赛区,2011年福州赛区,2012年金华赛区,2012年杭州赛区。2013年杭州赛区。均由此课程主讲教师郭炜负责命题。北京大学的Online Judge --- POJ 更是国内最有影响力的ACM/ICPC竞赛训练平台之一,在国际上也有较高知名度和较多用户。

2014-08-12

OpenCV入门教程

OpenCV 只是一个算法库,能为我们搭建计算机视觉 应用ᨀ供“砖头”。我们并不需要完全精通了算法原理之后才去使用 OpenCV, 只要了解了“砖头”的功能,就可以动手了。在实践中学习才是最高效的学习 方式。《OpenCV入门教程》希望为初学者ᨀ供引导,使初学者快速了解 OpenCV 的基本数 据结构以及用法。

2018-04-19

Flask Web开发

本书共分三部分,全面介绍如何基于 Python 微框架 Flask 进行 Web 开发。 第一部分: Flask 简介,介绍使用 Flask 框架及扩展开发 Web 程序的必备基础知识 ; 第二部分:给出一个实例,真正带领大家一步步开发完整的博客和社交应用 Flasky, 从而将前述知识融会贯,付诸实践。 第三部分:介绍了发布应用之前必须考虑的事项,如单元测试策略、性能分析技术、Flask 程序的部署方 式等。

2018-05-29

行走少年郎的留言板

发表于 2020-01-02 最后回复 2020-01-02

新版的分类依旧不好用

发表于 2018-01-11 最后回复 2018-01-11

空空如也

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

TA关注的人 TA的粉丝

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