问题: POJ3026分析:采用BFS算出两两之间的距离,再用PRIM算法计算最小生成树。AC代码: 1 //Memory: 220K Time: 32MS 2 #include 3 #include 4 #include 5 #include 6 #include...
分类:
其他好文 时间:
2014-07-03 23:17:55
阅读次数:
362
1 #include 2 using namespace std; 3 int main(){ 4 int a,b,m,n,x; 5 cin>>a>>b; 6 m=a>b?a:b; 7 n=a+b-m; 8 x=n; 9 while(x!=0){10...
分类:
其他好文 时间:
2014-07-03 21:56:51
阅读次数:
268
题目:993 - Product of digits
题目大意:将一个数通过因式分解变成另一个由因子组成的最小的数。
解题思路:因为要组成数,所以因子只需要从 2 - 9,又因为需要最小的数,所以因式分解从最大的因子开始,这样位数最少,最后输出从最小的因子输出,保证最小。1的话需要特判,因为所有的数都有因子1.
代码:
#include
#include
co...
分类:
其他好文 时间:
2014-07-03 18:21:51
阅读次数:
155
题目地址:POJ2195
本人职业生涯费用流第一发!!快邀请赛了,决定还是多学点东西,起码碰到简单的网络流要A掉。以后最大流费用流最小割就一块刷。
以前费用流在我心目中一直是高大上,高不可攀的形象,可这两天才发现,原来费用流就是一个spfa再加点东西。。。一直以为费用流会比最大流的isap要麻烦好多,毕竟多了一个费用的元素。。。。我真的错了。。仔细研究了一下,只用一个spfa确实就可以解决了。...
分类:
其他好文 时间:
2014-07-03 18:15:51
阅读次数:
200
搜索树数据结构支持许多动态集合操作,如search(查找)、minmum(最小元素)、maxmum(最大元素)、predecessor(前驱)、successor(后继)、insert(插入)、delete(删除),这些都是基本操作,可以使用一颗搜索树当做一个字典或者一个优先队列。
12.1、什么事二叉搜索树
二叉搜索树是以一棵二叉树来组织的,可以用一个链表数据结构来表示,也叫二叉...
分类:
其他好文 时间:
2014-07-03 18:02:21
阅读次数:
231
这道题和poj的拯救少林神棍是一样的题目。
要用给出的小棍凑成等长的棍子,求能凑成的棍子的最小长度。
直观的包里思路就是枚举所有可能的长度,然后不停的测试小棍组合,先把小棍加入组合,然后不合适就推翻这一根小棍,再测试下一个小棍,直到推翻所有的小棍。
在枚举的时候,我们只需从最长的小棍长,枚举到小棍总长的一半就行了。然后如果再不符合的话,那么就说明所有小棍只能组合成一根棍子了。
我原先看过关于poj上拯救少林神棍这道题目的详细讲解。一个DFS搜索题,这里DFS共有四种剪枝方案:...
分类:
其他好文 时间:
2014-07-03 17:29:03
阅读次数:
161
选择排序
定义:依次选择最小的元素放在相应的位置上
特点:比较次数是 N(N-1)/2 交换次数是 N (each exchange puts an item into its ?nal position, so the number of exchanges is N. Thus, the running time is dominated by the number of
com...
分类:
其他好文 时间:
2014-07-03 15:44:01
阅读次数:
259
多种方法,可以理解为最短路变形。
也可以当作最小生成树。
题意理解就很简单。
青蛙A到青蛙B之间距离中某一次跳的距离,选出最大的。
写了2个最短路的。SPFA 和 Dijkstra。
顺便熟悉一下最小生成树,也写个Kruskal 的。
SPFA:
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2014-07-03 13:52:06
阅读次数:
146
类似于我上一篇解题报告。POJ 2253 Frogger。
也是最短路的变形,也可以当成生成树做。
2253 是求跳的路径中 权值最小的那一条。
而这道题1797 是求路径中 权值最大的那一条。
只需要把2253 中的dis[]初始赋INF,其他赋为0。然后dis[v]
d是某一边的大小。u出发点,v是到达点。
程序基本和 2253 一样。
#include
#include...
分类:
其他好文 时间:
2014-07-03 13:31:00
阅读次数:
193
问题:POJ3041分析: 构造二分图:令A = B = { 1, 2, ... , n }, 分别代表行号集与列号集。假如第i行第j列有一颗行星,则连接Ai与Bj, 表示必须从Ai(即第i行),Bj(即第j列)中选择一个射击。最小射击数等价于覆盖所有边的最小点集S的大小。问题转化为最小顶点覆盖问....
分类:
其他好文 时间:
2014-07-03 13:00:20
阅读次数:
228