2013年8月14日
摘要: 题意 : 说实话,题意我没看懂,后来让人给我讲的样例。。。。。 4aaaaaaabaaaaaaabaaaaaaabaaaa0这个样例的话,就是输入n下面n行,每行7个字母,让你依次选两行进行比较,不同的有多少个,所以题目中给的样例,1,2行一个不同的,1,3行一个不同的,1,4行一个不同的,所以距离是3,2,3行两个不同的,2,1行一个不同的,2,4行两个不同的,距离是4,这样找下去,可以构成一个无向图,找最小生成树。解题思路 : 其实就是一个转化问题,将给的字符串转化成距离的二维数组再找最小生成树即可 1 #include 2 #include 3 #include 4 #include 5 阅读全文
posted @ 2013-08-14 13:01 枫、 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 最小生成树的算法有两种,一种是prim,另一种是kruskal。prim模板: 1 int prim() 2 { 3 //low数组用来保存非生成树中各顶点与生成树中顶点最短边的权值;dis数组则是你输入的数组矩阵 4 int ans = 0, i, j, flag, min; 5 ... 阅读全文
posted @ 2013-08-14 10:32 枫、 阅读(341) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1258题意 : john当上了镇长,打算给每个农场都连接网络,需要用最小的成本连接其他所有农场,所以要找最少的纤维连在一起,任何两个农场之间的距离不超过十万。输入n,下面有n行n列,代表着每两个农场的距离,对角线为0,因为自己到自己是为0;解题思路 : 这个题要包含所有的农场,赤果果的最小生成树,这个题的话,注意是多组输入还有数组不要开得太小,算法的话prim和kruskal都可以,我用的是prim。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 i 阅读全文
posted @ 2013-08-14 10:21 枫、 阅读(274) 评论(0) 推荐(0) 编辑
  2013年8月13日
摘要: http://poj.org/problem?id=1860题意: 题目中主要是说存在货币兑换点,然后现在手里有一种货币,要各种换来换去,最后再换回去的时候看能不能使原本的钱数增多,每一种货币都有对应的汇率,而货币A到货币B的汇率即为1货币A换得得货币B的数量,但兑换点是要收取佣金的,且佣金从源货币中扣除,例如,你想在汇率29.75,佣金为0.39的兑换点把100美元换成卢布,得到的卢布数即为(100-0.39)*29.75 = 2963.3975.样例解释:3 2 1 20.0 1 2 1.00 1.00 1.00 1.002 3 1.10 ... 阅读全文
posted @ 2013-08-13 17:17 枫、 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个迷宫,入口处标为S,出口处标为E,可以走的地方为“.”,不可以走的地方为#,求左转优先时从出口到入口的路程,再求右转优先时,出口到入口的路程,最后求从出口到入口的最短路程。思路:求前两个的时候用DFS递归求解能走的路就OK,求最短的时候当然要用广度优先搜索啦。 1 #include 2 #include 3 #include 4 using namespace std ; 5 char ch[158][158]; 6 int sum ;//总步数 7 int h,w,i,j,k ; 8 int enx,eny,stax,stay; 9 int fx[] = {0... 阅读全文
posted @ 2013-08-13 11:02 枫、 阅读(274) 评论(0) 推荐(0) 编辑
  2013年8月10日
摘要: http://poj.org/problem?id=2503这个题一开始是想用字典树,发现太麻烦。。。。。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int main () 7 { 8 map tra; 9 char s[100011], str[100011], s1[100011];10 while (gets(s)&&s[0])11 {12 sscanf(s,"%s %s",str,s1);//输入一个字符串,空格前的存到str里边,后边的存到s... 阅读全文
posted @ 2013-08-10 14:08 枫、 阅读(196) 评论(0) 推荐(0) 编辑
  2013年8月8日
摘要: http://poj.org/problem?id=2993这个题与POJ2996正好反着,但个人认为,比2996好做多了,那些边边框框都挺容易输出的,剩下的注意p别忘了给输进去就行,还有白色的是大写,黑色的是小写; 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std ; 7 struct node 8 { 9 int row,col;//列 10 char ch ; 11 }sh[168]; 12 char s1[1006]; 13 int cnt; 14 ... 阅读全文
posted @ 2013-08-08 20:28 枫、 阅读(274) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=2996又是一个大模拟题,表示做模拟题做的恶心,这个题主要是对数据的处理,从表格中将数据取出来再进行处理即可。主要注意的点就是:1.KQRBN五个大写字母输出的顺序,且p不输出。 2.输出白色的时候,按列升序排,列相同时按行升序排,黑色的是按列降序排,列相同的时候按行升序排。 3.最后是不用输出逗号的,这个用一个标记变量标记一下就行。 1 #include 2 #include 3 #include 4 using namespace std; 5 char cont[] = "KQRBNP"; 6... 阅读全文
posted @ 2013-08-08 20:24 枫、 阅读(189) 评论(0) 推荐(0) 编辑
  2013年8月7日
摘要: http://poj.org/problem?id=3295 1 #include 2 #include 3 #include 4 #include 5 using namespace std ; 6 stackQ; 7 int p,q,r,s,t ,i,j; 8 int a,b,flag; 9 int judge(char ch,int p,int q, int r,int s,int t) 10 { 11 switch(ch) 12 { 13 case 'p':Q.push(p);return 1; 14 case 'q':... 阅读全文
posted @ 2013-08-07 18:35 枫、 阅读(190) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1573 1 #include 2 #include 3 #include 4 5 int main() 6 { 7 int step[15][15],n,m,x,y,s; 8 int visit[15][15]; 9 char map[15][15];10 while(scanf("%d%d%d",&n,&m,&y),n||m||y)11 {12 /*for(int i=1;in || y>m)44 {45 printf("%d... 阅读全文
posted @ 2013-08-07 11:05 枫、 阅读(160) 评论(0) 推荐(0) 编辑