uva OJ
林伏案
妖蛾子良多的范老爷
展开
-
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 · 1463 阅读 · 3 评论 -
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 · 807 阅读 · 0 评论 -
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 · 294 阅读 · 0 评论 -
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 · 480 阅读 · 0 评论 -
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 · 1015 阅读 · 0 评论 -
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 · 440 阅读 · 0 评论 -
The SetStack Computer id:12096
//题中要求的是集合的集合,所以用一个map将集合映射成一个int 类型的ID, 这样就便于编写代码//当然题中还需要用到栈,包含在头文件stack中//用vector来存储集合,stack来存储集合的id,而map主要用来将set转变成id#include #include #include #include #include #include #include #inclu原创 2016-03-26 11:26:51 · 255 阅读 · 0 评论 -
Team Queue. id:540
Queues and Priority Queues are data structures which are known to most computer scientists. TheTeam Queue, however, is not so well known, though it occurs often in everyday life. At lunch time the q原创 2016-03-26 16:21:51 · 1021 阅读 · 0 评论 -
Ananagrams id:156
Most crossword puzzle fans are used to anagrams--groups of words with the same letters in different orders--for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have this attribute,原创 2016-03-26 11:09:11 · 232 阅读 · 0 评论 -
Andy's First Divtionary id:10815
分析:题目本身很简单,关键是利用STL中的set,即可轻松解决该问题。set即集合,其中不允许有重复的元素存在常见的set操作如下:(set s)插入元素:s.insert(15)删除元素:s.erase(15)或者s.clear()查找元素:s.find(15)这三个只是最基本的操作,注意查找元素时返回的是迭代器的位置,如果集合中没有该元素,则返回集合最后一位后面原创 2016-03-24 20:09:39 · 295 阅读 · 0 评论 -
The Block Problem, id:101
分析:可以用C++的STL中的vector来表示每个木块堆。然后用一个数组来存储vector。具体代码如下:#include #include #include #include using namespace std;vector block_vec[25];int block_find(int a, int & h, int n) { int pile ;原创 2016-03-24 12:30:39 · 198 阅读 · 0 评论 -
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 · 1103 阅读 · 0 评论 -
用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 · 687 阅读 · 0 评论 -
Cube painting id: 253
OutputThe output is a file of boolean. For each line of input, output contains TRUE if the second half can be obtained from the first half by rotation as describes above,FALSE otherwise. Sampl原创 2016-03-22 08:56:03 · 242 阅读 · 0 评论 -
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 · 194 阅读 · 0 评论 -
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 · 553 阅读 · 0 评论 -
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 · 237 阅读 · 0 评论 -
uva1603
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51165/*solution: 可以用迭代加深算法作为框架。搜索对象主要有两种:一是正方形,而是火柴。 个人采取前者。date:2016/5/15*/#include <iostream>#include <cstdio>#include <c原创 2016-05-15 23:03:33 · 789 阅读 · 0 评论 -
UVA1602
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=51164/*solution: 本题利用回溯法解决。本题实际上是要搜索n连通块不同形态的个数(平移,翻转,旋转后相同的算作一种形态),因此能够有效的判断n连通块是否重复是关键。 那么如何判断是否重复呢?我们一步步的分析。由于可能要涉及对一个对象的旋转,平原创 2016-05-15 23:00:27 · 900 阅读 · 1 评论 -
uva1374
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41552/*solution: 迭代搜索+最优性剪枝,状态搜索。date:2016/5/7*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>usin原创 2016-05-15 22:58:49 · 429 阅读 · 0 评论 -
uva1343
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36627/*solution: IDA*公认经典题,典型的状态空间搜索,但如果套用8数码框架会超时,所以用IDA×算法note: 注意旋转操作用到数组化不连续为连续,方便了枚举操作(line, center数组)date:2016/5/10*/#i原创 2016-05-15 22:49:57 · 366 阅读 · 0 评论 -
uva12325
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=24875#include <iostream>#include <cstdio>using namespace std;typedef long long ll;ll s1, v1, s2, v2, n;long long value;int main(){原创 2016-05-15 22:45:27 · 437 阅读 · 0 评论 -
uva11212
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23956/*solution: 采用IDA*算法note: IDA*算法就是从小到大枚举深度上限,每次执行只考虑最大深度之内的结点,再设计一个乐观估价函数,用来剪枝。 其实就是 “迭代加深搜索” + "乐观函数剪枝"date: 2016原创 2016-05-15 22:43:38 · 750 阅读 · 0 评论 -
埃及分数问题
问题描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34882/*solution: 采用迭代加深搜索,从小到大枚举深度上限maxd,每次执行之考虑深度不超过maxd的结点。note: 如果在加上最优性剪枝,就成了IDA*算法date: 2016/5/10*/#include <iostrea原创 2016-05-15 22:41:46 · 508 阅读 · 0 评论 -
uva10603
题目描述:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19527/*solution: 还是把状态看成结点,然后以隐式图的方法去扩展结点,其过程跟dijkstra算法有点类似。note: 隐式图date: 2016/5/4*/#include <iostream>#include <cstdi原创 2016-05-15 22:34:02 · 333 阅读 · 0 评论 -
八数码问题
问题描述: 有3行3列正方形,里面填充有8个数字,给定初始状态和最终状态。求最少要几步才能到最终状态? 样例输入: 2 6 4 1 3 7 0 5 8 8 1 5 7 3 6 4 0 2 样例输出: 31/* 8数码问题,给出3*3的正方形,输入初始状态以及目标状态,求出从初始状态到目标状态所需的最小步数solution: 可以把8数码问题归结为图上的最短路进问题,图的结原创 2016-05-15 22:30:41 · 490 阅读 · 0 评论 -
uva1354
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=41537/*solution: 关键任务是枚举二叉树。 自顶向下构造二叉树,每次枚举左子树用的哪个子集,则右子树就是使用剩下的子集。note: 关于枚举二叉树用到了二进制枚举法。A & B, A | B, A ^ B, 分别对应集合的交,并和对原创 2016-05-15 22:26:13 · 435 阅读 · 0 评论 -
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 · 290 阅读 · 0 评论 -
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 · 536 阅读 · 0 评论 -
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 · 464 阅读 · 0 评论 -
Database uva1592
//1:getline的用法//2:map的巧妙运用//3:只枚举c1 c2,然后从上到下扫描各行,将c1 c2作为二元组,碰到新的行r就把其作为内容存放到map中,如果map中已经//存在,即可求出所要的答案//4:二元组有关#include #include #include #include #include #include #include using name原创 2016-03-29 09:09:41 · 284 阅读 · 0 评论 -
Alignment of Code id:1593
//1:关键是求出各列单词最长的长度,然后将各行单词保存在vector数组里面。即可根据于此格式化输出,//2:注意最后一列没有输出空格//3:注意此题中有关sstream的用法#include #include #include #include #include #include //#define ONLINEusing namespace std;const i原创 2016-03-29 08:58:52 · 367 阅读 · 0 评论 -
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 · 345 阅读 · 0 评论 -
squares id:201
A children’s board game consists of a square array of dots that contains lines connecting some of the pairs of adjacent dots. One part of the game requires that the players count the number of squares原创 2016-03-21 13:02:54 · 256 阅读 · 0 评论