2012年10月11日
摘要: 隐式图的遍历。大意:在5X5方格中,给你一定的棋子,让你判断找出最小的步数变成给定的状态。思路:BFS+hash判重模拟过程。1、通过STL重载来实现hashstruct cmp{ bool operator () (int a, int b) const { return memcpy(a.map, b.map, 25) < 0;}};2、hash判重,注意状态转移。CODE:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<qu 阅读全文
posted @ 2012-10-11 21:44 有间博客 阅读(409) 评论(0) 推荐(0) 编辑
摘要: CODE:#include<cstdio>#include<cstdlib>#include<iostream>#include<cstring>usingnamespacestd;#defineMAXN30#defineINF0X3F3F3F3FintG[MAXN][MAXN];boolvis[MAXN][MAXN];intans,n,m;voidinit(){memset(G,0,sizeof(G));ans=-INF;}voiddfs(intu,intcur){if(cur>ans)ans=cur;for(intv=0;v<n; 阅读全文
posted @ 2012-10-11 16:49 有间博客 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 大意:排序,求数字第一次出现的位置。CODE:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>usingnamespacestd;intn,m;inta[10001];intcmp(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}intmain(){inttimes=0;while(~scanf("%d%d",&n,&m)&&(n||m)){for(inti 阅读全文
posted @ 2012-10-11 15:57 有间博客 阅读(138) 评论(0) 推荐(0) 编辑
摘要: CODE:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<set>usingnamespacestd;set<int>vis;voidinit(){vis.clear();}intgetNumber(intn){ints=0;while(n){s+=(n%10)*(n%10);n/=10;}returns;}intmain(){inttimes=0;intT,ans,n;scanf("%d",&am 阅读全文
posted @ 2012-10-11 13:34 有间博客 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 简单回溯CODE:#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>usingnamespacestd;constintSIZE=6;intMAX;intmaze[SIZE][SIZE];intN;intcheck(intr,intc){inti;for(i=r-1;i>=0;i--){if(maze[i][c]=='Y')return0;if(maze[i][c]=='X')bre 阅读全文
posted @ 2012-10-11 13:16 有间博客 阅读(156) 评论(0) 推荐(0) 编辑