搜索
文章平均质量分 78
yan_____
不跟你介绍
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uva 10603 倒水 bfs
倒水问题,求可以倒出最接近要求的水量和倒出的总水量,如果相差最小的时候有两个解,取较小的那一个#include #include #include #include #include using namespace std; int val[3],goal; int xiao,indx; int end,pour,mincha; int vis[200][200][200]; //相应状态下最原创 2012-10-21 00:35:29 · 560 阅读 · 0 评论 -
sdut 1961 dfs递归
Image Compression 像素按精确度压缩,直接dfs即可解 #include #include int w,t; char map[70][70]; int f(int x,int y,int size) { int i,j,sum; sum=0; for(i=x;i<x+size;i++) { for(j=y;j<y+size;原创 2013-03-11 19:44:17 · 804 阅读 · 0 评论 -
zoj 2849 优先队列bfs 熊猫烧香病毒传播
zoj 2849 1、被感染的机器防御等级 2、类型小的优先感染 3、只能感染相邻的 4、一天之内能感染的全部都可以感染完 #include #include #include #define INF 1<<30 using namespace std; struct node{ int day; int type; int x; int y; f原创 2013-03-10 19:53:52 · 1509 阅读 · 0 评论 -
uva 705 Slash Maze 斜杠构图统计图中回路
还是斜杠构图,这里统计环的个数和最长环的长度,在bfs中记录长度,加上判断边界不成环的条件即可 Slash Maze By filling a rectangle with slashes (/) and backslashes ( ), you can generate nice little mazes. Here原创 2013-01-25 17:15:56 · 1158 阅读 · 0 评论 -
hdu 3375 XieGang and FanXieGang 斜杠构图 bfs
在图中寻找同色墙即内墙的个数,斜杠图的构图简单直接的一个方法是把杠放在3*3的矩阵中,再进行基本的搜索,但扩大9倍的规模会超时,一个杠还可以按照杠分开的区域分成4部分存储,即扩大4倍的规模,在遍历比较大的图时dfs往往会栈溢出,此时应用非递归的bfs对图遍历 另外数据很多大初始化用memset很占时间会超时,不如for循环快 相邻格子的块号是(r+2)%4,本格内相邻是3-r或(5-r)%原创 2013-01-25 10:57:30 · 1248 阅读 · 0 评论 -
hdu 2514 Another Eight Puzzle 枚举
将8个数字填进图中,让相邻的点上的数字不相邻,8个数字全排列枚举即可 要注意全排列的求法 #include do{ ………… } while(next_permutation(a,a+8)); Another Eight Puzzle Time Limit : 2000/1000ms (Java/Other) Memory Limit : 3276原创 2013-01-25 14:30:28 · 1090 阅读 · 0 评论 -
uva 861 Little Bishops 棋盘上的象
回溯会超时,要用把黑白棋盘分别dp,把对角线的格按大小排序后当做放车问题来计算,对角线摞起来不规则,就按照对角行格数从小到大画再dp,就不会有漏掉的情况 //回溯#include #include int zhu[16],fu[16],n,k,tot; int c[9][18]; void search(int hang,int j,int lie) { if(hang==n||j>n原创 2012-11-06 22:39:17 · 1840 阅读 · 0 评论 -
uva 10181 - 15-Puzzle Problem 十五数码 IDA*
照上一个题八数码修改来的,只是十五数码和八数码判断是否有解的方法不同,八数码0的移动不影响其余7个数字逆序数的奇偶性,而十五数码0的左右移动不影响其余15个数逆序数的奇偶性(顺序不变),但上下移动改变奇偶(移动三次),加上0的话16个数逆序数左右改变(移动一次),上下也改变(移动7次),需要注意每次移动0的距离奇偶性也改变(0到目标位置的曼哈顿距离不是加1就是减一),所以16个数逆序数与0的距离之原创 2012-11-24 12:45:11 · 4556 阅读 · 2 评论 -
poj 1077 八数码 ida*
IDA*比较好,重复路径也无所谓了,A*存状态判重意义不大,不实用 IDA*就是限制搜索深度的dfs,多加了一个limit限制条件,可以得到最优解 八数码的一些解释http://wenku.baidu.com/view/37a1b7a4284ac850ad024269.html 别人的总结http://www.cnblogs.com/JMDWQ/category/383627.html 这原创 2012-11-23 23:21:11 · 1882 阅读 · 0 评论 -
uva 10004 双着色
#include #include int flag; int map[210][210],n; int color[210]; void dfs(int d,int c) { if(flag) return; if(color[d]==0) { color[d]=c; for(int i=0;i<n;i++) { if(map[d][i]==1) dfs(i,原创 2012-11-10 14:34:44 · 663 阅读 · 0 评论 -
uva 10160服务站
最小顶点覆盖问题,依次按修建服务站的个数从小到大dfs ,有几个优化:1、入度为0的点一定要用,used=1; 2、入度为1的点不用,used=-1,与它相连的那个点用,used=1;3、所有点按入度降序排列;4.、用late表示该点之后的点全用上的状态,与当前状态相加来判断当前路径是否能到达终点;5、用长整型来表示集合 #include #include #include int n,m; _原创 2012-11-10 14:33:26 · 1300 阅读 · 0 评论 -
uva 10099
#include #include int x(int a,int b) { if(a<b) return a; else return b; } int d(int a,int b) { if(a<b) return b; else return a; } int main() { int i,j,k,l,m,n,r,min; int s,e,p; int map[原创 2012-11-10 23:21:08 · 530 阅读 · 0 评论 -
hdu 1401 双向bfs
#include #include #include #include using namespace std; int move[2][4][2]={ {{0,-1},{0,1},{-1,0},{1,0}} //x y ,{{0,-2},{0,2},{-2,0},{2,0}}}; char vis[8][8][8][8][8][8][8][8]; int flag; struct node{原创 2012-10-23 11:35:05 · 926 阅读 · 0 评论 -
uva 10118 免费糖果 深搜+记忆化搜索
uva 10118 http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html #include #include #define N 45 #define C 22 int max(int a,int b) { return a>b?a:b; } int pile[4][N],f[N][N][N][N],n原创 2013-04-24 09:55:54 · 1885 阅读 · 0 评论
分享