摘要: 题目连接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=203题目描述:给定平面上N个城市的位置,计算连接这N个城市所需线路长度总和的最小值。输入描述:输入文件中包含多个测试数据。每个测试数据的第1行为一个正整数N,0《=N《=100,代表需要连接的城市数目;接下来有N行,每行为两个实数X和Y,-10000《=X,Y《=10000,表示每个城市的X坐标和Y坐标。输入文件中最后一行为N=0,代表输入结束。输出描述:对输入文件中每个测试数据,计算连接所有城市所需线路长度总和的最小值。每对城市之间的线路为连接这两个城市的直线。对于 阅读全文
posted @ 2012-11-09 14:52 小猴子、 阅读(710) 评论(0) 推荐(0) 编辑
摘要: 题目连接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1286代码:#include<stdio.h>#include<limits.h>#include<string.h>#include<queue>using namespace std;int step[101][101][101]; //行,列,价值。step记录最小步数。char map[101][101];int n, m, tot;struct now { int 阅读全文
posted @ 2012-11-09 09:57 小猴子、 阅读(385) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1042思路:卒子所在行枚举答案,然后dfs求解。/* * hrbust1042过河卒 * 思路:卒子所在行枚举答案,然后进行不重复深搜。 */#include<stdio.h>#include<string.h>#include<algorithm>using namespace std; char res[10]; //记录卒子所在行的状态,用来枚举当前行。char map[6][10 阅读全文
posted @ 2012-11-07 00:22 小猴子、 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 题目连接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=649大致题意:求r到a最少用多长时间,走到‘.'的时间为1,走到‘x'的时间为2,’#‘不能走。代码:#include<stdio.h>#include<string.h>#include<limits.h>#include<algorithm>#include<queue>using namespace std;#define M 201char map[M][M]; //存放地图。int 阅读全文
posted @ 2012-11-04 17:32 小猴子、 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题目连接http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1317题目大意 如何根据一系列堆栈操作实现回文构词法呢?有两种堆栈的操作,将单词TROT转换成TORT。 i代表入栈,o代表出栈。对给定的单词对,编程实现堆栈操作,将第一个单词转换为第二个单词。 有多行输入。每两行的第一个是源单词(不包括换行符),第二行是目标单词(也不包括换行符)。由文件结束符标志输入结束。 对每对单词,有多种有效的方法从源单词产生目标单词,将每种方法的i和o操作排序输出,并以[]分隔。排序的方法是字典序。 阅读全文
posted @ 2012-11-03 22:58 小猴子、 阅读(458) 评论(0) 推荐(0) 编辑
摘要: 题目连接:http://poj.org/problem?id=1979大致题意:给出两个数m和n,代表n行m列,都不超过20,然后是n行m列的图,包括'.' , '#' , '@'3个字符。@代表你的位置,'.'代表通路,‘#’代表墙,问你最远不回头能走几个‘.' 。‘@’算一个。输入0 0 结束。题意本不是这样,被我该了。。。意思不变#include<stdio.h>#include<string.h>char map[22][22];int m, n, ans;int dir[4][2] = { 阅读全文
posted @ 2012-11-03 18:25 小猴子、 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1412大致题意:按照题目给出的几个正方形拼成一个矩形,每个小正方形中间有个管子,问拼成的矩形有多少个能通的管子。思路:dfs#include<stdio.h>#include<string.h>#define I (i*3)#define J (j*3)char str[51][51];int map[159][159];int n, m;int dir[4][2] = { {0, 1}, {0, -1}, {-1, 0}, {1, 0}};v 阅读全文
posted @ 2012-11-02 23:22 小猴子、 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题目链接http://poj.org/problem?id=2406大致题意:题目要我们求出一个字符串得最大循环长度!做过了poj1961这个题就一点问题都没有了要知道next数组的含义和 if(i % (i-j) == 0 && i / (i-j) > 1)的含义,我在上篇解题报告上贴了,也就是poj 1961中。直接贴代码吧#include<stdio.h>#include<string.h>char str[1000002];int next[1000002];int main(){ while(scanf("%s", s 阅读全文
posted @ 2012-11-02 12:36 小猴子、 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 题目链接 http://poj.org/problem?id=1961大致题意:给出一个串,输出第i位之前的串是由多少个相同的子串组成的。输出i的子串的个数。思路:在next数组中加一句判断即可if(i%(i-j) == 0 && i/(i-j) > 1) { printf("%d %d\n", i, i/(i-j));}这条语句是什么意思?要了解next数组的求法,那么就不难理解了。对于 i%(i-j) == 0遍历到第i个字符,前面字符串的长度为i,且前面字符串的前缀和后缀相等的字符的个数是j个。如果想要得到像题意那样的序列,则j必满足j》=i/2 阅读全文
posted @ 2012-11-01 20:19 小猴子、 阅读(345) 评论(0) 推荐(0) 编辑
摘要: #include<stdio.h>#include<string.h>#define INF 0xfffffffstruct point { int x; int y;};int step[301][301];struct point que[30000001];int main(){ struct point p1, p2; while(scanf("%d %d %d %d", &p1.x, &p1.y, &p2.x, &p2.y) != EOF) {// memset(step, 0, sizeof(step)); 阅读全文
posted @ 2012-10-31 23:36 小猴子、 阅读(363) 评论(2) 推荐(0) 编辑