摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4520 1 #include <iostream> 2 #include <algorithm> 3 #include <math.h> 4 using namespace std; 5 6 int main() 7 { 8 int n, i, besti; 9 double p[30], sor[30], final, sum, min;10 while (cin >> n && n)11 {12 besti = sum = 0;13 阅读全文
posted @ 2013-05-17 10:18 windysai 阅读(175) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4500 找规律的题目,找到就很简单了:如果该位置是负整数,则四周的数中,正整数和负整数都要相加;如果该位置是正整数,则四周的数中,如果是负整数,则加上它的绝对值,是正整数则直接相减,归结到底就是无论是正负整数,都要相减。要注意的一点是:要判断越界情况! 1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int i, j, max, bi, bj, n, m, pos[22][22], cur[22][22] 阅读全文
posted @ 2013-05-16 20:37 windysai 阅读(264) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238 题意很简单,即找出最长的公共子串。 n个序列为p[0]...p[n-1],最长公共子串(顺着看,存放在p[0])的长度为maxlen,逆着看(存放在reverse数组里)的长度为maxlen1。由于公共子序列是每个序列的子串,因此不妨枚举第一个序列(其实枚举最短的那个子串是最好的)的每一个可能的子串s,以s为模式,分别以p[1]...p[n-1]为目标进行匹配计算。若s为p[1]...p[n-1]的公共子串(strstr[p[k], s) != 0,1 <= k <= n-1), 阅读全文
posted @ 2013-05-16 20:19 windysai 阅读(395) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4524 一开始看题目,以为很难,其实是自己吓唬自己.....题目有句话要特别注意:如果右边没有箱子或者右边的箱子已经消失了,则无法操作当前的箱子,这是解题的关键!根据这个条件,比较序列中紧挨着的前后两个数(假设是i、j,j=i+1),要分三种情况讨论:1、相等(a[i] = a[j])。这时,两个数都变成0,下一个操作数是a[j]的下一个数,也就是i+2的位置 2、a[i] > a[j],此时肯定不符合题目条件,因为在当前箱子还没消失但右边箱子已经消失的情况下,是无法操作当前箱子的,此时最后肯 阅读全文
posted @ 2013-05-04 22:10 windysai 阅读(196) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 题意很简单,就是输入一个n,把1~n的数填入n个圆圈里,但是要满足相邻两个数的和是素数,输出的时候要按符合条件的序号按递增的形式输出,每个实例之间要有空行。 这是一道dfs的经典题目,其中还要结合... 阅读全文
posted @ 2013-05-03 19:44 windysai 阅读(340) 评论(3) 推荐(1)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1372 题目的意思是,在一个棋盘里,给出两点a和b,计算a到b的最小步数。玩过象棋的人应该都知道,“马”是走“日”的,这里的走法就是按“马”的走法来走。假设给出的点是(0,0),它下一步只能有8个选择,也就是(1, 2),(1,-2),(-1,2),(-1,-2),(2,1),(2,-1),(-2,1),(-2,-1)。 这里还有两点要注意:1、输入的字符a-h要化成整型,以便在棋盘里构图。2、最终,每一个knight[i][j]保存的都是最少的步数,否则会递归地找到最少的move数 1 #incl 阅读全文
posted @ 2013-05-01 23:31 windysai 阅读(227) 评论(0) 推荐(0)
摘要: 题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=4&page=show_problem&problem=227 题意很简单,就是要我们以左下角的点“1”为起点,不能重复且不能间断,一笔画出整个图形,并按照节点序号递增的顺序,访问相邻的节点。不难想到这是一道DFS的题目,遍历所有的边且每条边只能访问一次。 这里我是使用了一个对称的相邻矩阵map[][]来存储这个图。由于该图为一个连通图,因此从任意节点出发进行一次DFS,即可遍历所有节点和所有的边。 阅读全文
posted @ 2013-05-01 20:07 windysai 阅读(528) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2073 这是一道找规律的题目。给出两点((x1,y1)和(x2,y2)),假设以(0,0)这个起点开始画线。可以发现(0,1)->(1,0),(0,2)-> (2,0),...(0,n)-> (n,0)这些下降的线上才有多个分布的点,而这些点是有规律可循的,任意的点(x,y)的和等于它所处的线上的端点的x和y的和,而且越往线下画,它的x坐标在递增,y坐标在递减。而(1,0)->(0,2),(2,0)->(0,3)...(n,0)->(0,n+1)这些上升的线上是没 阅读全文
posted @ 2013-04-28 21:32 windysai 阅读(237) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2054 这是目前以来我写的最长的代码!所以看到这篇报告的读者,如果自问耐心不是过人的话,还是不要看代码了,建议只看思路。这是很久以前遗留下来的题目,wa了一次之后就放下了,因为知道会很繁琐,不是单纯短短几行代码就搞定的(那时天真的做法啊~~)。几天前,心血来潮,决定把它干掉!!!前前后后做了足足3天,其实没那么夸张啦,加起来应该7、8个小时左右吧(不好意思,说了那么多废话),步入正题。 这道题目题意很简单:就是判别A是否等于B。不过有很多细节需要注意,我就是看着人家给的测试数据才知道的,辛辛苦苦地写 阅读全文
posted @ 2013-04-28 19:55 windysai 阅读(215) 评论(0) 推荐(0)
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 又一条深搜,但是我做的时候根本没有想到用dfs做,应该是数学模型还没建立好吧!结果就是只能实现部分功能。我的做法是:由于只用到一个单词的首尾两个字母,所以很自然的想到用结构体来保存;接着比较所有输... 阅读全文
posted @ 2013-04-24 00:21 windysai 阅读(231) 评论(0) 推荐(0)