InkGenius

Good developers who are familiar with the entire stack know how to make life easier for those around

0-1背包问题复习

准备面试,通过做POJ上的题,复习算法知识,做POJ 3624复习了背包相关知识。看背包九讲时有些实现细节不是很懂,于是就从最直接的实现开始实现0-1背包的动态规划算法,再逐渐写出优化后的解法。 状态转移方程便是: f[i][v]=max{f[i-1][v],f[i-1][...

2015-05-05 18:01:08

阅读数:320

评论数:0

Poj 2387 Til the Cows Come Home(Dijkstra 最短路径)

题目:从节点N到节点1的求最短路径。 分析:这道题陷阱比较多,首先是输入的数据,第一个是表示路径条数,第二个是表示节点数量,在 这里WA了四次。再有就是多重边,要取最小值。最后就是路径的长度的最大值不是100,而是100001。用Dijkstra求最短路径,感觉 Dijkstra和Prim很像,...

2014-03-15 14:59:55

阅读数:542

评论数:0

Poj 2367 Genealogical tree(拓扑排序)

题目:火星人的血缘关系,简单拓扑排序。很久没用邻接表了,这里复习一下。 import java.util.Scanner; class edge { int val; edge next; } public class Main { static int n; static int...

2014-03-15 14:58:33

阅读数:397

评论数:0

Poj 2395 Out of Hay( 最小生成树 )

题意:求最小生成树中最大的一条边。 分析:求最小生成树,可用Prim和Kruskal算法。一般稀疏图用Kruskal比较适合,稠密图用Prim。由于Kruskal的思想是把非连通的N个顶点用最小的代价构成一个连通分量,这与并查集的思想类似,所以可以用并查集来实现Kruskal。 import j...

2014-03-14 14:14:33

阅读数:459

评论数:0

Poj 2421 Constructing Roads(Prim 最小生成树)

题意:有几个村庄,要修最短的路,使得这几个村庄连通。但是现在已经有了几条路,求在已有路径上还要修至少多长的路。 分析:用Prim求最小生成树,将已有路径的长度置为0,由于0是最小的长度,所以一定会被Prim选中加入最小生成树。 package Map; import java.util.Scan...

2014-03-14 14:14:16

阅读数:359

评论数:0

Poj 3253 Fence Repair(哈夫曼树)

Description Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,...

2014-03-14 14:14:00

阅读数:520

评论数:0

Poj 3414 Pots

Description You are given two pots, having the volume of A and B liters respectively. The following operations can be performed: FILL(i)       ...

2014-03-11 10:34:57

阅读数:365

评论数:0

Poj 3287 Catch That Cow(BFS)

Description Farmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 1...

2014-03-08 15:26:28

阅读数:564

评论数:0

Poj 1321 棋盘问题(搜索)

Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数...

2014-03-08 13:37:33

阅读数:509

评论数:0

Poj 2488 A Knight's Journey(搜索)

Description Background The knight is getting bored of seeing the same black and white squares again and again and has decided to make a journey aroun...

2014-03-07 17:38:23

阅读数:577

评论数:0

Poj 1631 Bridging signals(二分+DP 解 LIS)

题意:题目很难懂,题意很简单,求最长递增子序列LIS。 分析:本题的最大数据40000,多个case。用基础的O(N^2)动态规划求解是超时,采用O(n*log2n)的二分查找加速的改进型DP后AC了。 在基础的动态规划解法中,由于动态规划的无后效性(对于每个阶段来说,它以前的各阶段状态无法直...

2014-02-28 15:54:04

阅读数:538

评论数:0

Poj 3356 ACGT(LCS 或 带备忘的递归)

题意:把一个字符串通过增、删、改三种操作变成另外一个字符串,求最少的操作数。 分析: 可以用LCS求出最大公共子序列,再把两个串中更长的那一串中不是公共子序列的部分删除。 分析可知两个字符串的距离肯定不会超过它们的长度之和,因为我们可以通过删除操作把两个串化为空串。如果两个字符串的第一个元素...

2014-02-28 11:04:26

阅读数:548

评论数:0

拓扑排序 POJ 1094 Sorting It All Out

题意:给定N个字和M行他们之间的关系,要求输出他们的拓扑排序。此题采用边输入边检测的方式,如果发现环,就结束并输出当前行号;如果读取到当前行时,可以确定拓扑序列就输出,不管后面的输入(可能包含环路);如果到最后还是不能确定拓扑序列,就输出指定的字符串。 拓扑排序:对一个有向无环图(Directed...

2013-09-29 16:36:04

阅读数:475

评论数:0

POJ 1042 Gone Fishing( DP )

题意: 小明打算做一个h((1 ,每在一个湖钓完鱼后,要到下一个湖但他可以选择是否要在这里钓鱼,并且他可以在任何一个湖结束他此次钓鱼的行程。输入给出小明在每个湖中单位时间内(5分钟)钓的鱼数fi[i],以及随单位时间的增长而线性递减di[i]。没到下一个湖所需的时间为ti[i](单位时间)。求怎...

2013-09-22 17:00:50

阅读数:737

评论数:0

Poj 1973 Software Company(二分+并行DP)

一、题意         有n个工人做两个工程A和B,每个工程都被分为m份,给你每个工人做A中的一份需要的时间Xi秒,和做B中的一份所需时间Yi秒,问最短需要多少时间可以完成这两项工程。 分析:显然同意时刻不同的工人可以一起工作,那么面临的问题也就是一个工作的分配,让某一时刻的某个工人干A还是干B...

2013-08-28 21:34:49

阅读数:898

评论数:0

Poj 2299 Ultra-QuickSort(归并排序求逆序数)

一、题意        给定数组,求交换几次相邻元素能是数组有序。 二、题解         刚开始以为是水题,心想这不就是简单的冒泡排序么。但是毫无疑问地超时了,因为题目中n,显然不满足要求。还有就是数组中的元素0 ≤ a[i] ≤ 999,999,999,要用long long或_i...

2013-08-25 16:24:41

阅读数:723

评论数:0

Poj 1860 Currency Exchange(Bellman-Ford,SPFA解单源最短路径问题)

一、题意          有多个货币交易点,每个只能互换两种货币,兑换的汇率不同,并收取相应的手续费。有N中货币,假定你拥有第S中,数量为V。现有M个兑换的。问你能不能通过兑换操作使你最后拥有的S币比起始的时候多。 二、题解         货币的交换是可以重复多次的,所以我们需要找出是否存在...

2013-08-24 11:05:35

阅读数:763

评论数:0

POJ题目分类

经多次转载,谢谢各位的总结。直接转自:http://blog.csdn.net/very_2/article/details/5733577  水题: 3299,2159,2739,1083,2262,1503,3006,2255,3094 初级: 一、基本算法:        (1...

2013-08-21 22:33:05

阅读数:533

评论数:0

Poj 1077 eight(BFS+全序列Hash解八数码问题)

一、题意       8数码问题,给出一个含数字1~8和字母x的3 * 3矩阵,如:            1  2  X            3 4  6            7  5  8      现在要你移动x的位置(方向为上、下、左、右),使得这个矩阵为:            1 ...

2013-08-20 16:50:08

阅读数:717

评论数:0

Poj 2304 Combination Lock(模拟顺、逆时钟开组合锁)

一、题目大意         模拟一个开组合的密码锁过程。就像电影你开保险箱一样,左转几圈右转几圈的就搞定了。这个牌子的锁呢,也有它独特的转法。这个锁呢,有一个转盘,刻度为0~39。在正北方向上有一个刻度指针。它的密码组合有三个数,开锁的套路为:先把刻度盘顺时针转两圈,然后再顺时针转到第一个数,...

2013-08-13 15:29:59

阅读数:1012

评论数:0

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