2011年9月8日
摘要: UVA_532 这个题目在一般图的遍历的基础上增加了一维,多了两个可以选择的方向。#include<stdio.h>#include<string.h>int a[40][40][40],vis[40][40][40];int qx[30000],qy[30000],ql[30000],dis[30000];int dx[]={-1,1,0,0},dy[]={0,0,-1,1};char b[40];int main(){ int i,j,k,L,R,C; int front,rear,newx,newy,newl,x,y,l; while(1) { sc... 阅读全文
posted @ 2011-09-08 23:43 Staginner 阅读(294) 评论(0) 推荐(0) 编辑
摘要: UVA_439 一个相对比较简单的搜索题,直接广搜即可。#include<stdio.h>#include<string.h>int a[10][10],qx[100],qy[100],vis[10][10];int dx[]={-2,-2,-1,1,2,2,1,-1};int dy[]={-1,1,2,2,1,-1,-2,-2};char b1[5],b2[5];int main(){ int i,j,k,ux,uy,vx,vy,front,rear,x,y,newx,newy; while(scanf("%s%s",b1,b2)!=EOF) { 阅读全文
posted @ 2011-09-08 20:06 Staginner 阅读(298) 评论(0) 推荐(0) 编辑
摘要: UVA_784 这个题目是个相对容易的搜索题目,同时在搜索的过程中也无需再用vis数组标记是否访问过了,因为染过色就相当于访问过了。#include<stdio.h>#include<string.h>int a[50][100],n;char b[100];int dx[]={-1,1,0,0},dy[]={0,0,-1,1};void dfs(x,y){ int i,newx,newy; for(i=0;i<4;i++) { newx=x+dx[i]; newy=y+dy[i]; if(a[newx][newy]==1) ... 阅读全文
posted @ 2011-09-08 18:11 Staginner 阅读(295) 评论(0) 推荐(0) 编辑
摘要: UVA_657首先可以用一个数组a[][]来存储图,其中“.”为-1,“*”为0,“X”为1。为了确保能把每个骰子都遍历完,我们可以使用两个判断是否访问的数组vis0[][]和vis1[][],其中vis0为是否遍历过骰子上的点(包括X和*),由深搜函数dfs0使用,vis1表示是否在搜索X时搜过当前的X。当我们遍历时候,如果遇到*或者X就进入dfs0,如果当前点为X时再跳入dfs1,每当在dfs0中跳入dfs1并跳出时,骰子的点数加1,当所有dfs0结束的时候,骰子数加1。#include<stdio.h>#include<string.h>#include<s 阅读全文
posted @ 2011-09-08 17:50 Staginner 阅读(416) 评论(0) 推荐(1) 编辑
摘要: UVA_572这是个相对容易的搜索题目,只要依次遍历图,遇到没有访问过的“@”就开始广搜或者深搜,直到把8个方位相邻的“@”都搜完位置。每进入一次搜索,总数就加1。#include<stdio.h>#include<string.h>int a[110][110],vis[110][110],num;char b[110];int dx[]={-1,1,0,0,-1,-1,1,1};int dy[]={0,0,-1,1,-1,1,-1,1};void dfs(int x,int y){ int i,newx,newy; for(i=0;i<8;i++) { ne. 阅读全文
posted @ 2011-09-08 17:05 Staginner 阅读(390) 评论(0) 推荐(0) 编辑
摘要: UVA_307相当于重温了一下POJ 1011这个题目,剪枝在这个题目中显得尤为重要。对于这道题而言,剪枝的策略一般有下面6个:①先将木棒长度从大到小进行排序,这样便于后面的选择和操作,是后面一些剪枝算法的前提。②在枚举原木棒长度时,枚举的范围为max与sum/2之间,如果这个区间内没有找到合适的长度,那么最后原木棒的长度只能是sum。③枚举的原木棒的长度只能是sum的约数。④在深搜过程中,如果当前木棒和前一个木棒的长度是一样的,但是前一个木棒没有被选上,那么这个木棒也一定不会被选上。⑤在深搜过程中,如果当前是在拼一根新木棒的第一截,但如果把可用的最长的一根木棒用上后不能拼成功的话,那么就不用 阅读全文
posted @ 2011-09-08 14:30 Staginner 阅读(864) 评论(0) 推荐(0) 编辑