2011年9月17日
摘要: UVA_188 这个题目的难度主要在理解题意上面,理解了题意之后只要按题意进行模拟并找出C即可。#include<stdio.h>#include<string.h>#include<ctype.h>int head[30],next[30];int st[30],w[30],n,C;char b[200],temp[30];int min(int x,int y){ return x<y?x:y; }int make(){ int i,j; for(i=0;i<n;i++) for(j=i+1;j<n;j++) if((C/w[i]... 阅读全文
posted @ 2011-09-17 17:33 Staginner 阅读(518) 评论(0) 推荐(0) 编辑
摘要: UVA_141由于一开始审题的问题,导致WA个不停,以后一定要加强审题!首先,棋盘是N*N的,不是4*4的。其次,在判断这个状态是否出现过时,要分别判断3种情况,但存储状态的时候只存储1种情况。#include<stdio.h>#include<string.h>int head[100007],next[1100];int st[440][250],dis[110],temp[50][50],N;char flag[5];int hash(int *A){ int i,v=0; for(i=0;i<N*N;i++) v=((v<<1)+A[i])%1 阅读全文
posted @ 2011-09-17 12:46 Staginner 阅读(404) 评论(0) 推荐(0) 编辑
摘要: UVA_704 以前即使八数码问题也没有用双向BFS,但这次状态数太多了,于是不得不使用双向BFS了。#include<stdio.h>#include<string.h>#include<stdlib.h>#define HASH 10000003int head1[HASH],next1[100000],head2[HASH],next2[100000];int st[200000][21],dis[200000],front,rear;int fa[200000],flag[200000],dir,ans,mid;int target[21]={0,3 阅读全文
posted @ 2011-09-17 00:06 Staginner 阅读(521) 评论(0) 推荐(1) 编辑