
POJ
neofung
这个作者很懒,什么都没留下…
展开
-
ZOJ3121 POJ3488 Arne Saknussemm
挺简单的模拟题,直接给代码吧/******************************************************************************* * Author : Neo Fung * Email : neosfung@gmai原创 2011-07-12 16:43:53 · 973 阅读 · 0 评论 -
ZOJ1940 POJ2251 Dungeon Master 求三维迷宫路径问题,广度优先搜索
这题其实就是求二维迷宫的路径问题的三维版,我用了最简单的BFS方法。在这里的结构体point要重载==,!=运算符。/*******************************************************************************原创 2011-07-22 16:15:46 · 1428 阅读 · 0 评论 -
ZOJ1027 POJ1080 Human Gene Functions
非常经典的一条DP题,见以下代码/******************************************************************************* * Author : Neo Fung * Email : neosfung@gm原创 2011-07-12 16:49:45 · 1049 阅读 · 0 评论 -
ZOJ2482 POJ2105 IP Address
这几天都很忙,准备放假了吧:)所以没有时间想那些比较难的题目。这条是题水题,当做刷AC吧,哈哈/******************************************************************************* * Author :原创 2011-07-24 10:26:33 · 820 阅读 · 0 评论 -
ZOJ1005 POJ1606 Jugs 数论法
这个其实可以用数学方法证明其中的规律的,对于A,B,N,只要N能被A或B除尽,或者N能被A和B的最大公约数除尽,一直装一直倒就可以了,有时间我会证明一下的。当然了,你们也可以用广度优先搜索的方法,可以参考一下这个博客。好了,上代码。/***********************原创 2011-07-16 17:24:44 · 1136 阅读 · 0 评论 -
ZOJ1073 POJ1450 Gridland 投机取巧版。。。
关于这题有很多方法,我这里用了最简单的方法,就是。。。在图上画出来找规律。。。好了大家不要这么无语。。。在图上寻找规律后,容易看出,当M或N是偶数,或者都是偶数,最短距离为M*N。而当M和N都是奇数,则必有一条或以上的卸径,而最短距离是M*N-1+sqrt(2)。这个一定要画图才原创 2011-07-17 10:26:55 · 1355 阅读 · 0 评论 -
ZOJ1094 POJ2246 Matrix Chain Multiplication
第一次在这里贴算法题,如有不足希望大家指教。/******************************************************************************* * Author : Neo Fung * Email : neosf原创 2011-07-12 16:40:29 · 1002 阅读 · 0 评论 -
POJ3278 Catch That Cow 广度优先搜索版
这题有很多实现的算法,我这里使用了广度优先搜索,以起点N为第0层,搜索到的K位于那一层,那最短距离就是那一层。当然了,也可以用动态规划来做,有空补上。以下是广度优先搜索的代码~/***************************************************原创 2011-07-15 16:20:21 · 695 阅读 · 0 评论 -
ZOJ1366 POJ1276 Cash Machine 经典多重背包问题
这是一条非常经典的题,是0/1背包问题的变种,详细可以看看《背包9讲-多重背包问题》。简单说一下,对于n1 D1 n2 D2 ... nN DN,n为D的数量,则可以把n分解为k1=1,k2=2,k3=4,k4=8...km,且k1+k2+...km=n,其中k1,k2...km原创 2011-07-18 21:11:05 · 1411 阅读 · 0 评论 -
ZOJ1530 POJ1426 Find The Multiple 广度优先搜索,ZOJ可以AC,POJ给我TLE了。。。
广搜题,ZOJ中可以AC,POJ中却Time Limit Exceeded,我改到吐血了还是Time Limit Exceeded,。算了,不改了,希望有人可以帮我看看吧。以下是代码/************************************************原创 2011-07-19 15:39:38 · 1179 阅读 · 0 评论 -
ZOJ2001 POJ1504 Adding Reversed Numbers
大水题。。。原本打算按照大数处理的,后来发现是我多虑了。。。/******************************************************************************* * Author : Neo Fung * Email原创 2011-07-26 20:16:31 · 783 阅读 · 0 评论 -
ZOJ1292 POJ1503 Integer Inquiry 大数加法
大数加法,很简单。ZOJ和POJ的要求略有不同。/******************************************************************************* * Author : Neo Fung * Email : neo原创 2011-07-28 12:16:56 · 876 阅读 · 0 评论 -
POJ1836 Alignment DP最长队列问题
关于这题一眼看上去貌似是最长队列问题。题目本意是指,给出一个有n个元素的队列,从里面踢掉最少的元素,使得队伍中的元素往左看或者往右看,都可以看到队列的端点。对于WA,我给一个下面的数据,看看你们结果是怎样93 4 5 1 2 5 4 3 3正确答案应该是3。因为两个5都可以留下原创 2011-07-20 19:30:31 · 969 阅读 · 0 评论 -
ZOJ1414 POJ1663 Number Steps 很简单的找规律题
很简单,找规律。。。/******************************************************************************* * Author : Neo Fung * Email : neosfung@gm原创 2011-07-31 11:45:31 · 987 阅读 · 0 评论 -
ZOJ1715 POJ2028 When Can We Meet? 简单的数组题
很简单,我用了vector来做。注意ACM中数组这些都应该开大一点,否则会runtime error。/*******************************************************************************原创 2011-07-31 15:27:12 · 1011 阅读 · 0 评论 -
ZOJ1733 POJ1458 Common Subsequence,经典DP问题
很经典的DP问题,问最长共同子字符串。DP[i][j]存放的是对于A字符串和B字符串,当A到达 i 和B到达j 时,最大公共字符串的长度。我们定义temp,如果A的第i个字符和B的第j个字符相等,则temp为1,否则为0。则对于DP[i][j],到达DP[i][j]的可能有三原创 2011-09-03 16:44:20 · 796 阅读 · 0 评论 -
ZOJ2777 POJ2090 Visible Lattice Points
这题是求点到原点的连线不重合的有多少条。根据观察,除了在x=0和y=0上的点,以及(x=1, y=1)这些点外,其他点如果x和y坐标互质,则一定不存在重合,故可以有如下代码/***********************************************原创 2011-09-07 15:30:17 · 903 阅读 · 0 评论 -
ZOJ1871 POJ2590 Steps
很简单的一题,可惜我一开始写错了。。。最好就是从间隔1开始慢慢找规律,找到n步最长可以走多少,最短可以走多少,就可以了。然后统计对于n步,最长和最短的差值,这就可以找到规律了。/***********************************原创 2011-09-07 16:50:20 · 1125 阅读 · 0 评论 -
ZOJ1025 POJ1065 HDU1051 Wooden Sticks,贪心算法版
这题我用的是贪心算法,对len排序后在weight中找总共有多少个没有公共交点的上升子序列。总的时间复杂度为O(N^2)。/************************************************************************原创 2011-09-09 18:32:49 · 1434 阅读 · 0 评论 -
ZOJ1082 POJ1125 Stockbroker Grapevine,Dijkstra 算法
这题是典型的最短路径问题,这里我用的是Dijkstra 算法。Dijkstra 算法的时间复杂度为O(n^2),如果对于每一个点应用Dijkstra 算法,则总体时间复杂度为O(n^3)。/***************************************原创 2011-08-12 22:07:56 · 664 阅读 · 0 评论 -
ZOJ3627 POJ1631 HDU1950 Bridging Signals,O(N*logN)版最长上升子序列问题
这题如果用普通的最长上升子序列来做的话因为时间复杂度为O(n^2),肯定会超时,所以这里用的是O(N*logN)的方法,代码带有详细解释了。/*************************************************************原创 2011-09-08 20:29:49 · 1349 阅读 · 0 评论 -
ZOJ1298 POJ1135 Domino Effect,Dijkstra 算法
这是很简单Dijkstra算法的应用。把遍历过的顶点记录下来,每一次找到一个顶点,就把最短路径到达这个顶点的边记录下来,在最后找到所有没有记录的边,看看边上是否存在碰撞点。这题要考虑一种情况,就是一个顶点的情况。这可是贡献了我多个WA啊~~~~~/********原创 2011-08-13 20:12:22 · 735 阅读 · 0 评论 -
ZOJ1092 POJ2240 Arbitrage,Floyd算法
原本想用Dijkstra算法的,但是死活AC不了,所以就用Floyd算法了ToT;虽然Dijkstra算法和Floyd算法时间复杂度一样,但是其应用环境有很大不同。/***************************************************原创 2011-08-15 19:09:52 · 1116 阅读 · 1 评论 -
ZOJ2876 POJ3630 HDU1671 Phone List,静态Trie树
这题用Trie数来解决。如果用动态的话,malloc,new和delete这些肯定会超时,所以只能用静态数。判断条件优化一下,可以把时间将到100ms以内,ZOJ上70ms刷到第一页。。。记得静态数组开大一点,10000个号码每个号码10位,开100000最保险了。原创 2011-09-12 19:13:07 · 1140 阅读 · 0 评论 -
ZOJ1333 POJ1545 Galactic Import,Floyd算法
只从用了Floyd算法后,我就把Dijkstra算法抛弃了。。。这题要注意的有几点,第一,就是编号可以从任意一个字符开始,所以一般都是开到26*26的矩阵,而且循环必须要循环到26而不是n;第二,就是Floyd的路径更新判断了,可以看我代码。/************原创 2011-08-16 23:09:11 · 888 阅读 · 0 评论 -
POJ2309 BST
水题,找规律。可以看到每一层的节点都可以被同一层最左边的节点整除,而最左边的节点都是2的幂。找到规律,然后看一下这个节点和左右最底的节点的差均为这个节点同一层的最左节点减一(好绕口。。。)。/**************************************原创 2011-09-14 19:33:19 · 1150 阅读 · 0 评论 -
POJ3268 Silver Cow Party,SPFA+转置矩阵
看到题目的数据量,就知道要用SPFA了。问题在于是否要对每个顶点求SPFA呢?事实上不是的。如果用farm表示正常的距离矩阵,transform表示farm装置后的矩阵。对farm求x的SPFA可以得出x到各个顶点的最短距离,也就是返回时的最短距离,那各个顶点到到x的最短距离呢?原创 2011-09-14 22:16:40 · 789 阅读 · 0 评论 -
ZOJ1592 POJ2263 Heavy Cargo,Dijkstra算法
这题没有什么好说的,知道起点和终点,直接用Dijkstra,一次AC。/******************************************************************************* # Author : Ne原创 2011-08-18 15:10:49 · 786 阅读 · 0 评论 -
POJ1258 Agri-Net,Kruskal算法
这题很简单,我选择用Kruskal算法,prim算法其实比较简单一点。。。/******************************************************************************* # Author : Neo原创 2011-08-20 22:27:29 · 758 阅读 · 0 评论 -
ZOJ1942 POJ2253 Frogger,Dijkstra算法
这道题也是典型的最短路径问题变种,我用的是Dijkstra算法。我一直WA,因为输出忘了个#号。。。/******************************************************************************* #原创 2011-08-19 15:12:12 · 1598 阅读 · 0 评论 -
ZOJ1406 POJ1251 Jungle Roads,Prim算法~
这题是很简单的Prim算法应用,不解释。。。/******************************************************************************* # Author : Neo Fung # Email :原创 2011-08-20 18:21:52 · 1302 阅读 · 0 评论 -
ZOJ1709 POJ1562 Oil Deposits,并查集
这题一般都会用DFS来做的,但是我这里使用并查集来做,感觉效果也不错,以下是代码。/******************************************************************************* * Author :原创 2011-08-26 18:58:27 · 843 阅读 · 0 评论 -
ZOJ1711 POJ1564 Sum It Up,DFS+输出排序+去重复
这题一看上去就知道要用DFS了,但是里面有个条件,输出必须是按字典序排序的,而且还要去除重复项。看到这里一般都会想尽很多办法的,不过我就直接用multiset和set。multiset运行容器中的元素重复,这样可以记录所有的组合;而set是不允许容器中的元素重复的,这样就可以把结原创 2011-08-28 12:59:26 · 1270 阅读 · 0 评论 -
POJ2186 Popular Cows,Kosaraju算法+缩点
算法主要参考这篇解题报告点击打开链接,利用的是Kosaraju算法和缩点,给每个强连通分量染上颜色,缩成点后统计每个点的出度。/********************************************************************原创 2011-09-24 01:37:17 · 1037 阅读 · 0 评论 -
POJ1236 Network of Schools,Tarjan
这题其实也是很普通的强连通分量题,但是问题却有些人读不懂。第一个问,就是求要最少分发多少份可以使得软件到达全部学校,也就是缩点后求入度为0的点。关于第二问,就是求最少要添加多少条边才能使得只要分发一份软件就可以使得全部学校都收到。对于第二问,缩点后,我们可以统计出度为0和原创 2011-09-25 20:32:07 · 598 阅读 · 0 评论 -
ZOJ1979 POJ2553 The Bottom of a Graph,经典Tarjan
经典的强连通分量题,我用了Tarjan算法+缩点。把每个强连通分量缩点,求出每个点的出度。所谓的bottom,就是那些出度为0的强连通分量,对于所有出度不为零的连通分量里的点,都可以到达bottom中的点。/******************************原创 2011-09-25 01:51:08 · 693 阅读 · 0 评论 -
ZOJ1149 POJ1014 HDU1059 Dividing,多重背包问题
很经典的多重背包问题,大家可以看看《背包九讲》里面的第三讲。/******************************************************************************* # Author : Neo Fun原创 2011-10-02 20:44:51 · 1353 阅读 · 0 评论 -
ZOJ1808 POJ1056 HDU1305 Immediate Decodability,Trie树
标准的Trie树的题,有个小错误一直弄了很久,还是不熟练啊/******************************************************************************* # Author : Neo Fung #原创 2011-10-04 19:20:28 · 1028 阅读 · 0 评论 -
ZOJ2016 POJ1386 HDU1116 Play on Words,欧拉路径及欧拉回路
参考这里的点击打开链接,把欧拉路径和欧拉回路的判断总结的淋漓尽致。/******************************************************************************* # Author : Neo Fung原创 2011-10-08 20:15:01 · 1195 阅读 · 0 评论 -
POJ3281 Dining,最大流EK算法
最大流EK算法。这里我们把牛分为两点,一点负责吃,一点负责喝,汗。。。对于同一头牛,它有两个节点,设为i和n+i。i有到n+i的路径1。而对于这头牛可以吃的东西,都连接到i上,路径长度为1。对于这头牛可以喝的东西,都有n+i连接到,路径长度为1。我们设0为起点,2*n+f+d+1原创 2011-10-09 08:55:51 · 1138 阅读 · 0 评论