自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林伏案的博客

伏案的学习笔记

  • 博客(27)
  • 收藏
  • 关注

原创 uva1658

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51253/*solution: 跟原来模板不同的是要求不能重复访问节点,所以要用到拆点法,将2~v-1的每个结点拆成i和i‘两个点 中间用容量为1费用为0的边连接起来。然后求1~v的流量为2的最小费用即可note: 拆点法date: 2

2016-04-25 23:36:40 372

原创 uva11082

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36866/*solution: 此题其实可以转换成最大网络流问题,可以想象每行是一个水管,每列也是一个水管。 把矩阵里的每个数都减少1,则A[i]减少c,B[i]减少r,每个元素范围变成0-19.假设每行对应 一个X,每列对应着一个Y,添加一个

2016-04-25 23:34:45 304

原创 uva753

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26746/*solution: 节点表示插头类型,边表示转换器,然后使用floyd算法,计算出任意一种插头类型能否转换成另外一种插头类型。 额外添加一个源点s,从s到设备device[i]连接一条容量为1的边,再额外加一个汇点t,从插座target[i

2016-04-25 23:33:13 494

原创 uva10048

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22156/*solution: 此题可以直接套上floyd算法的模板,但是要把加法改成max 对于任意一条至少包含两条边的路径,i->j,一定存在k使得i->j 噪音的最高级等于max(d[i][k]

2016-04-25 23:30:46 1048

原创 uva247

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=20840/*solution: 首先用floyd算法求出闭包,即g[i][j]表示i是否直接或者间接给j打过电话。 g[i][j] = g[j][i] = 1时二者处于同一个电话圈date: 2016/2/25*/#include <iostr

2016-04-25 23:29:22 477

原创 floyd算法

/*求出每两点之间的最短路径,多源最短路径solution: 该模板主要基于这样一个事实,对于任意一条至少包含两边的路径i->j,一定存在一个中间点k,使得i->j 的总长度等于i->k与k->j的长度之和。对于不同的点k,i->k和k->j的长度之和可能不同,最后还需要一个 最小值才是i->j的最短路径time: 2016/

2016-04-25 23:24:50 320

原创 Bellman-Ford算法

#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>using namespace std;const int maxn = 100000 + 5;const int INF = 99999999;int d[maxn], cnt[maxn], n, m; //

2016-04-25 23:23:48 246

原创 uva658

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22169/* 1:用一个n位二进制串来表示当前软件的状态,每次打完补丁后, 该状态就发生改变。所以可以把该状态看成结点,补丁打上后 发生状态变化的过程看成边,就可转化成最短路问题。 2:注意需要得到从任意结点u出发的所有边时,不是读G[u

2016-04-21 12:32:13 970

原创 uva12661

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=47070/* 算法思想: 本题就是最短路径问题,但是在边的权值上做了文章,并不单单只是考虑权值 而且还要考虑到达一条边的“阀门”时,是否要在门前进行等待,此时权值要加上 等待的时间。*/#include <iostream>#inc

2016-04-21 12:13:37 701

原创 poj3159

During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All the

2016-04-21 11:57:33 516

原创 dijkstra算法模板

/* dijkstra的算法模板,方便阅读使用,将方法封装在结构体中*/#include <iostream>#include <cstdio>#include <cstring>#include <vector>using namespace std;const int maxn = 100 + 5;const int INF = 99999999;struct Edge {

2016-04-21 11:39:27 550

原创 常见的位运算

交换两个元素的值:a ^= b ^= a ^= b;k位取反:a = ~(~a^(a << k));统计一个二进制数中1的数量:int bitCnt(int n) { int cnt = 0; while(n) { ++cnt; n &= n - 1; } return cnt;}4.右移一位相当于除以 2 ,右移 n 位相当于

2016-04-19 09:04:52 314

原创 uva1151

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36013/*考察点:kruskal算法算法步骤:1:在不购买任何子网的情况下,利用kruskal算法求出最小生成树2:用二进制法枚举所有子网可能的购买方案3:对每一种子网购买方案,还是利用kruskal算法求出最小生成树。 与第一次用kruskal算法

2016-04-17 20:13:10 298

原创 uva1395

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41567/*考察点:kruskal算法生成最小生成树题目实现步骤:1:把边权值从大到小排列,使用kruskal算法生成最小树2:假定最小树中的最小边为min,最大边为max,则这棵生成树包含的边集合为(min, max)3:所以苗条度为max - min4:

2016-04-17 11:27:58 553

原创 kruskal基础算法

/*Kruskal算法1:将所有边按照从小到大的顺序排列2:依次将权值最小的边加入生成树的子集当中3:重复以上的步骤直到找出n-1条边为止注:Kruskal适合求稀疏图问题,而prim算法适合求稠密图问题*/#include <iostream>#include <cstdio>#include <algorithm>#include <vector>using namespace

2016-04-17 11:18:08 495

原创 uva297

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19243//其实就是四叉树的构建,在构建过程中求解#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int maxn = 1024 + 10;char

2016-04-10 16:34:02 362

原创 uva839

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19486//二叉树的dfs#include <iostream>#include <cstdio>using namespace std;int weight(int &w) { int d1, w1, d2, w2; cin >> w1 >> d1

2016-04-10 16:31:14 268

原创 uva548

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19105/*1:从中序以及后序恢复二叉树2:注意getline与sstream用法,容易出错3:利用getline与sstream读入*/#include <iostream>#include <cstdio>#include <sstream>#inc

2016-04-10 16:29:42 560

原创 uva122

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19630/*1:newNode()是个动态化静态的技巧2:注意c语言字符串的灵活性,可以把任何“指向字符的指针”看成字符串 从该位置开始,直到结束符'\0'*/#include <iostream>#include <cstdio>#include

2016-04-10 16:27:26 201

原创 uva679

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19499/*只需要看小球编号的奇偶性,就可以推断是落在哪一棵子树中。例如对于落入左子树,只要知道小球是第几个落在该子树中的,就可以判断下一步是往左还是往右边*/#include <iostream>#include <cstdio>using namespace

2016-04-10 16:24:57 269

原创 uva10129

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19492/*1:通常想法是将每个单词看成一个节点,但如果单词的尾部与另外一个单词的首部相同,就能架起一座“桥”,但这样以来,数组就开太大了 2:将每个单词的首尾两个字母看成节点,此时单词就是一座桥。这样就可以根据欧拉道路的出入度来判断 3:注意题中判断欧

2016-04-10 10:04:01 1099 2

原创 uva10305

题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19494 下面给出刘汝佳的代码,但是个人觉得代码有点繁琐,后面又附上个人自己写的代码//尽量用if条件中不要包含if(flag[i] == 1)这样的语句;最好改为 if(flag[i])#include <iostream>#include <cstdio>#

2016-04-09 21:26:39 1499 3

原创 图的拓补排序基本算法

拓补排序很简单,就是一个图中存在(u, v)使得u必须在v之前遍历,而算法所要做的就是按照拓补顺序将图遍历。举例子,就像大学课程,某课程a是课程b的先修课程,即必须先学完a才能学b课程,而用拓补算法能够合理给出一个课程安排顺序。注意图中不能存在环,否则拓补排序将失败。基本算法如下:#include <iostream>#include <cstdio>#include <vector>#inc

2016-04-09 21:19:32 1579

原创 uva816

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=35521/* 1:将方向用数组来表示,可方便编写代码。 2:注意题意,初始状态是刚刚离开入口 3:注意输出的格式,最后如果不满10个坐标就结束记得换行*/#include <iostream>#include <cstdio>#inclu

2016-04-09 20:18:27 835

原创 基本算法DFS以及BFS

图的深搜#include <iostream>#include <vector>#include <cstdio>#include <cstring>using namespace std;const int maxn = 100;int G[maxn][maxn], vis[maxn];int n, m;vector<int> ans;void dfs(int start) {

2016-04-09 19:53:38 1370

原创 uva 1103 Ancient Messages

还是用dfs求连通块的内容//观察可看出几张图中圈数不一样,可以根据此来识别每张图//先dfs整张图,填充颜色编号-----》将像素点为1的点的编号m存储起来-----》将环数存储进以m为下标的set中#include #include #include #include #include #include using namespace std;cons

2016-04-04 20:21:07 1152

原创 用DFS求连通块

uva572:    Oil DepositsThe GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and cre

2016-04-04 19:31:51 721

空空如也

空空如也

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

TA关注的人

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