摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1406这道题让我见识了什么叫做坑跌。。。。用c输入的时候一定要注意格式,我因为输入格式没控制好,导致一直以为算法错了,调了一个多小时。。。用c++貌似好的多,没有神马空格换行的困扰,看来以后碰到格式复杂的输入可以考虑用c++的流。。。。代码如下:prim#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;# 阅读全文
posted @ 2012-03-07 22:26 枫萧萧 阅读(383) 评论(0) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1082很明显的最短路题,但是提到最短路我就想起dj算法,但是这道题没有固定从某一个点走,而是要求所有的最短路,因此用Floyd算法比较合适因为不常写Floyd,因此郁闷了老半天,要注意一定循环先k,再i,再j,看来以后算法都要实现一遍。。。最短路还有dp和spfa可以用,但是我都只是了解了个皮毛,看会了再用吧。。。代码如下:#include<iostream>#include<cstring>#include<cstdio>using 阅读全文
posted @ 2012-03-07 22:21 枫萧萧 阅读(380) 评论(0) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1008题目很长,读完后很容易理解错。题目中要求的不是移动三角形而是对整个矩形进行移动来达到目的!!!题目读懂后就容易写了,很明显是dfs+回溯的题,注意相同的矩形可以存储在一块,可以方便dfs。ac后发现运行时间竟达到5000+ms,还没超时,看到有0s过的,无奈,只能仰视~~Orz。。。代码如下:#include<iostream>#include<cstdio>#include<cstring>using namespace std 阅读全文
posted @ 2012-03-04 18:31 枫萧萧 阅读(866) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=203做了一上午的01背包,快中午的时候想到了这道题,最短路加01背包,思路很简单,但是runtime error和wa了几次runtime time原因是数组开小了,但是我现在还不明白为嘛要那么大!!!wa是因为一个小陷阱:可能同两个城市之间有多个数据,要取最短的,而我默认的是后面输入的覆盖前面输入的;这样的陷阱以后需要注意!!!代码如下:#include<iostream>#include<cstdio>#include<cstring>#include&l 阅读全文
posted @ 2012-03-04 13:30 枫萧萧 阅读(316) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=456题目看上去和上次做的搜索nyoj 325 zb的生日很像,但是再用暴力搜索dfs的结果必然是TLE~~解决这题的模型是01背包问题:先计算所有的邮票值sum,然后sum/2作为容量,每一张邮票的值代表一个物体的体积和价值,这就将问题转化为了经典的01背包问题。我又用这个思想做了一些zb的生日,结果超时了,又优化了一下才勉强过去,很无语。。。代码如下:#include<iostream>#include<cstdio>#include<cstring>usi 阅读全文
posted @ 2012-03-04 13:25 枫萧萧 阅读(521) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=44http://acm.nyist.net/JudgeOnline/problem.php?pid=104nyoj 44 字串和是经典的动态规划问题,104题将44题的一维最大和扩展到矩阵中,求子矩阵的最大和。思路大体还是一致的,先来说nyoj44吧。最大字段和问题用枚举,分治和动态规划都能解决,时间复杂度分别为O(n^2), O(nlogn), O(n)。dp的状态方程: b[j] = max{b[j-1] + a[j], a[j]}, 1<= j <= n; if b[j-1] 阅读全文
posted @ 2012-03-04 13:17 枫萧萧 阅读(484) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=16很经典的dp题。。。刚开始想用贪心做,做了一半改成dp了,后来听说贪心貌似也可以。。。dp的话贪心前做的一些排序准备工作就没用了~~刚开始我用邻接矩阵存储结果内存达到了4000+,很不爽,又用vector优化了下,这才满意。大致思路:先将数据根据能否嵌套化为图的表示方法,一个DAG,然后在DAG上动态规划dp方程:d(i) = max(d(j) + 1), (i, j) 属于图代码如下:#include<iostream>#include<cstdio>#include 阅读全文
posted @ 2012-03-03 16:52 枫萧萧 阅读(775) 评论(0) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2081刚看到最短路就想到了bfs搜索,但是看完题后发现bfs搜索解决完最短路问题后不好处理炸弹问题。我想过在state里边加上一个Boolean常量,来判断这个最短路是否过地雷,后来突然想到可以再dfs一下来判断过雷的最短路径的数目,所以那个方法就没有再尝试。dfs很容易想到要剪枝,有点像hdu1010的路径剪枝吧。。。悲剧的是我一直以为要求的是间谍被炸的概率,因此一直wa,更悲剧的时样例数据正好是50.00%,因此这个错误好难发现。。。。看错题的孩纸伤不起啊。。。。要吸 阅读全文
posted @ 2012-03-02 21:15 枫萧萧 阅读(336) 评论(0) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2050同样是一道bfs题,只不过难在如何对状态进行存储。我想了好长时间也没思路,看了别人的代码,理解后才写出来的。没法用状态数组标记(可能用set可以实现吧,没试过~~),所以用二进制来存储,比如都是白色,1111111111111111,最大时为2^16-1 = 65535,用很小的数组就可以存下。因为用到了二进制,就少不了位运算,因此要理解位运算后才能很好的理解这道题的算法。代码如下:#include<iostream>#include<cstdio 阅读全文
posted @ 2012-03-02 21:07 枫萧萧 阅读(521) 评论(2) 推荐(1) 编辑
摘要: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1438还是很经典的搜索题,有意思的是把原来的二维迷宫改为了立体迷宫,用三维数组来存储。易错的是三维容易把坐标弄错,我因为这wa了好多次。。。在纸上多画画就ok。代码如下:#include<iostream>#include<cstdio>#include<queue>#include<cstring>using namespace std;int dx[] = {-1, 1, 0, 0, 0, 0};int dy[] = { 阅读全文
posted @ 2012-03-02 20:58 枫萧萧 阅读(370) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=37回文字符串时间限制:3000 ms | 内存限制:65535 KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0<N<100)接下来的N行,每行一个字符串,每个字符串长度不超过1000.输出每行输出所需添加的最少字符数样例输入 阅读全文
posted @ 2012-01-20 14:50 枫萧萧 阅读(2153) 评论(1) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=214单调递增子序列(二)时间限制:1000 ms | 内存限制:65535 KB难度:4描述给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。输入有多组测试数据(<=7)每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=1000 阅读全文
posted @ 2012-01-20 13:56 枫萧萧 阅读(583) 评论(0) 推荐(1) 编辑
摘要: http://acm.nyist.net/JudgeOnline/problem.php?pid=2014.作业题 小白同学这学期有一门课程叫做《数值计算方法》,这是一门有效使用数字计算机求数学问题近似解的方法与过程,以及由相关理论构成的学科... 今天他们的Teacher S,给他们出了一道作业题。Teacher S给了他们很多的点,让 他们利用拉格朗日插值公式,计算出某严格单调函数的曲线。现在小白抄下了这些点,但是问题出现了,由于我们的小白同学上课时走了一下神,他多抄下来很多点,也就是说,这些 点整体连线不一定还是严格递增或递减的了。这可怎么处理呢。为此我们的小白同学制定了 以下的取点规则 阅读全文
posted @ 2012-01-19 08:28 枫萧萧 阅读(251) 评论(0) 推荐(1) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1175连连看Time Limit: 20000/10000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7173Accepted Submission(s): 1847Problem Description“连连看”相信很多人都玩过。没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子。如果某两个相同的棋子,可以通过一条线连起来(这条线不能经过其它棋子),而且线的转折次数不超过 阅读全文
posted @ 2012-01-03 11:20 枫萧萧 阅读(562) 评论(0) 推荐(2) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1072NightmareTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3220Accepted Submission(s): 1636Problem DescriptionIgnatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. 阅读全文
posted @ 2012-01-01 21:27 枫萧萧 阅读(293) 评论(0) 推荐(2) 编辑