
ZOJ
neofung
这个作者很懒,什么都没留下…
展开
-
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 评论 -
ZOJ3121 POJ3488 Arne Saknussemm
挺简单的模拟题,直接给代码吧/******************************************************************************* * Author : Neo Fung * Email : neosfung@gmai原创 2011-07-12 16:43:53 · 973 阅读 · 0 评论 -
ZOJ2482 POJ2105 IP Address
这几天都很忙,准备放假了吧:)所以没有时间想那些比较难的题目。这条是题水题,当做刷AC吧,哈哈/******************************************************************************* * Author :原创 2011-07-24 10:26:33 · 820 阅读 · 0 评论 -
ZOJ1201 Inversion
这几天是暑假,女友准备去法国,所以很多事情要处理,没有什么时间做题。这条题permutation到inversion 比较简单,但是inversion 到permutation有点难度。因为是分开两天来完成的,所以代码写得有点乱。大家可以根据我的代码来思考从inversion 到原创 2011-07-26 01:28:36 · 772 阅读 · 0 评论 -
ZOJ1073 POJ1450 Gridland 投机取巧版。。。
关于这题有很多方法,我这里用了最简单的方法,就是。。。在图上画出来找规律。。。好了大家不要这么无语。。。在图上寻找规律后,容易看出,当M或N是偶数,或者都是偶数,最短距离为M*N。而当M和N都是奇数,则必有一条或以上的卸径,而最短距离是M*N-1+sqrt(2)。这个一定要画图才原创 2011-07-17 10:26:55 · 1354 阅读 · 0 评论 -
ZOJ1094 POJ2246 Matrix Chain Multiplication
第一次在这里贴算法题,如有不足希望大家指教。/******************************************************************************* * Author : Neo Fung * Email : neosf原创 2011-07-12 16:40:29 · 1002 阅读 · 0 评论 -
ZOJ1045 Hang Over
如果每一次都是直接算肯定会超时的,还是用个数组来保存吧/******************************************************************************* * Author : Neo Fung * Email :原创 2011-07-12 16:59:29 · 1054 阅读 · 0 评论 -
ZOJ1005 POJ1606 Jugs 数论法
这个其实可以用数学方法证明其中的规律的,对于A,B,N,只要N能被A或B除尽,或者N能被A和B的最大公约数除尽,一直装一直倒就可以了,有时间我会证明一下的。当然了,你们也可以用广度优先搜索的方法,可以参考一下这个博客。好了,上代码。/***********************原创 2011-07-16 17:24:44 · 1136 阅读 · 0 评论 -
ZOJ2001 POJ1504 Adding Reversed Numbers
大水题。。。原本打算按照大数处理的,后来发现是我多虑了。。。/******************************************************************************* * Author : Neo Fung * Email原创 2011-07-26 20:16:31 · 783 阅读 · 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 评论 -
ZOJ1292 POJ1503 Integer Inquiry 大数加法
大数加法,很简单。ZOJ和POJ的要求略有不同。/******************************************************************************* * Author : Neo Fung * Email : neo原创 2011-07-28 12:16:56 · 876 阅读 · 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 评论 -
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 评论 -
ZOJ3432 Find the Lost Sock,异或运算
ZOJ上面的AC终于超过了100了。这道题有点难度,首先是输入的数据量大,最大的测试集达到1000000*2-1。其次一般人的想法是对于每一个输入,检索以前的输入是否有与之匹配的,如果有则消去,否则将输入记下来。但是计算机里面有个非常有用的运算,就是异或了。而且异或符原创 2011-09-01 16:24:49 · 991 阅读 · 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 评论 -
ZOJ2109 FatMouse' Trade,贪心算法
很简单的一题,用贪心算法可以解决。结构体内保存了JavaBean的数量j,cat food的数量f,以及j和f的比值rate。也就是说每1 cat food可以兑换多少JavaBean。然后对rate按照从大到小的顺序排序。然后每次按照rate从大到小的选择,保证cat food原创 2011-09-03 16:49:16 · 851 阅读 · 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 评论 -
ZOJ3627 POJ1631 HDU1950 Bridging Signals,O(N*logN)版最长上升子序列问题
这题如果用普通的最长上升子序列来做的话因为时间复杂度为O(n^2),肯定会超时,所以这里用的是O(N*logN)的方法,代码带有详细解释了。/*************************************************************原创 2011-09-08 20:29:49 · 1349 阅读 · 0 评论 -
ZOJ3170 7 Levels of Binary Search Tree,BST
这题可以先对那些数字进行快排。排序结束后,就可以根据给出的对于某个节点,左右节点的孩子数来确定这个节点的数据是那个数了。注意要留意n==1的情况,在这里WA了很久。/***************************************************原创 2011-09-12 10:12:07 · 660 阅读 · 0 评论 -
ZOJ1082 POJ1125 Stockbroker Grapevine,Dijkstra 算法
这题是典型的最短路径问题,这里我用的是Dijkstra 算法。Dijkstra 算法的时间复杂度为O(n^2),如果对于每一个点应用Dijkstra 算法,则总体时间复杂度为O(n^3)。/***************************************原创 2011-08-12 22:07:56 · 664 阅读 · 0 评论 -
ZOJ1456 HDU1385 Minimum Transport Cost,Dijkstra算法
这题WA了很多次。这题除了是应用Dijkstra算法外,还有个要点是输出路径词典序,所以要记录路径。我在这里为了节省空间,只记录到达本节点的上一个前驱,如果遇到到达本节点的费用一样的另一个前驱,就可以重建路径,再比较路径的词典序。这题还有个注意的地方就是如果遇到查询是A==B的,原创 2011-08-14 16:51:51 · 1142 阅读 · 0 评论 -
ZOJ1109 Language of FatMouse,BST
这题如果用STL的map来做的话,会很简单,不过为了练手,所以我还是自己写。。。STL的map的查找时间复杂度在任何时候总是O(logN),因为map用的是红黑树,可以保证树的高度总是logN。但是这里为了简单,我就直接用一颗排序二叉树来做了。很简单的题,也不用什么注释了,唯独是原创 2011-09-12 11:09:33 · 1184 阅读 · 0 评论 -
ZOJ1298 POJ1135 Domino Effect,Dijkstra 算法
这是很简单Dijkstra算法的应用。把遍历过的顶点记录下来,每一次找到一个顶点,就把最短路径到达这个顶点的边记录下来,在最后找到所有没有记录的边,看看边上是否存在碰撞点。这题要考虑一种情况,就是一个顶点的情况。这可是贡献了我多个WA啊~~~~~/********原创 2011-08-13 20:12:22 · 735 阅读 · 0 评论 -
ZOJ2876 POJ3630 HDU1671 Phone List,静态Trie树
这题用Trie数来解决。如果用动态的话,malloc,new和delete这些肯定会超时,所以只能用静态数。判断条件优化一下,可以把时间将到100ms以内,ZOJ上70ms刷到第一页。。。记得静态数组开大一点,10000个号码每个号码10位,开100000最保险了。原创 2011-09-12 19:13:07 · 1140 阅读 · 0 评论 -
ZOJ3171 The Hidden 7's,DP版
这题算是非典型的DP 吧。可以看一下代码中的注释。/******************************************************************************* # Author : Neo Fung # Email :原创 2011-09-13 12:54:29 · 834 阅读 · 1 评论 -
ZOJ1092 POJ2240 Arbitrage,Floyd算法
原本想用Dijkstra算法的,但是死活AC不了,所以就用Floyd算法了ToT;虽然Dijkstra算法和Floyd算法时间复杂度一样,但是其应用环境有很大不同。/***************************************************原创 2011-08-15 19:09:52 · 1116 阅读 · 1 评论 -
ZOJ1333 POJ1545 Galactic Import,Floyd算法
只从用了Floyd算法后,我就把Dijkstra算法抛弃了。。。这题要注意的有几点,第一,就是编号可以从任意一个字符开始,所以一般都是开到26*26的矩阵,而且循环必须要循环到26而不是n;第二,就是Floyd的路径更新判断了,可以看我代码。/************原创 2011-08-16 23:09:11 · 888 阅读 · 0 评论 -
ZOJ1589 Professor John,Floyd算法
这题其实原本不想写解题报告的,因为自己为了两个小错误耗费了两个小时。这题也是使用了简单的Floyd算法。以后一定要提醒自己,不要以为过了题目的数据就submit了,自己要构建多种数据进行测试找到漏洞。/*********************************原创 2011-08-17 13:44:19 · 979 阅读 · 0 评论 -
ZOJ2504 Help John!,Floyd算法会TLE,只能用Dijkstra算法了
前面几天都是做Floyd算法的题,再加上理解错题目,碰到这题就惯性的用Floyd算法了,在ZOJ上会TLE。后来看了一些解题报告,了解了从1出发,下一个到达的路口是母亲规定的第二个路口,就好像例子中的2和2。所以这题可以直接用Dijkstra算法来搞,直接从第二个路口开始Dijk原创 2011-08-17 21:27:38 · 914 阅读 · 0 评论 -
ZOJ1592 POJ2263 Heavy Cargo,Dijkstra算法
这题没有什么好说的,知道起点和终点,直接用Dijkstra,一次AC。/******************************************************************************* # Author : Ne原创 2011-08-18 15:10:49 · 786 阅读 · 0 评论 -
ZOJ1655 Transport Goods,Dijkstra算法
这一题很简单,也是用Dijkstra算法求N到每个顶点的最短路径。这里的最短路径,是指N到每个顶点的最大(1-ratio),而(1-ratio)就是顶点经过运输到达N的剩余货物比率。/****************************************原创 2011-08-19 10:53:09 · 1002 阅读 · 0 评论 -
ZOJ2526 FatMouse and JavaBean II,Dijkstra算法+DFS
这题挺不错的,有一定难度。求到终点的最短路径我用Dijkstra,其路径更新条件可以看我的程序,如果到某个点有多个路径长度一样的最短路径,则选择豆子总数最多的。而求有多少条路径的长度是最短的,我没有想到什么好的方法,只能用DFS了。/*****************原创 2011-08-20 14:48:59 · 788 阅读 · 0 评论 -
ZOJ1406 POJ1251 Jungle Roads,Prim算法~
这题是很简单的Prim算法应用,不解释。。。/******************************************************************************* # Author : Neo Fung # Email :原创 2011-08-20 18:21:52 · 1302 阅读 · 0 评论 -
ZOJ1942 POJ2253 Frogger,Dijkstra算法
这道题也是典型的最短路径问题变种,我用的是Dijkstra算法。我一直WA,因为输出忘了个#号。。。/******************************************************************************* #原创 2011-08-19 15:12:12 · 1598 阅读 · 0 评论 -
ZOJ1711 POJ1564 Sum It Up,DFS+输出排序+去重复
这题一看上去就知道要用DFS了,但是里面有个条件,输出必须是按字典序排序的,而且还要去除重复项。看到这里一般都会想尽很多办法的,不过我就直接用multiset和set。multiset运行容器中的元素重复,这样可以记录所有的组合;而set是不允许容器中的元素重复的,这样就可以把结原创 2011-08-28 12:59:26 · 1270 阅读 · 0 评论 -
ZOJ2682 People like People,深度优先搜索
这题有点难度,不过理清题目后还是可以解决的。首先我们把全部节点都视为core节点。把出度为0的节点剔除掉,同时也可以把指向出度为0的节点的节点也剔除掉。把入度为0的节点剔除,同时修改它指向的节点的入度。不断重复直到没有可以剔除的节点了。这样余下的节点都可以构成core。这里可以构原创 2011-09-23 20:39:27 · 661 阅读 · 0 评论