搜索
文章平均质量分 52
Wss0130
这个作者很懒,什么都没留下…
展开
-
HDU 1010 Tempter of the Bone
这是个典型的剪枝搜索问题。。。要注意输入字符的时候,一定要使用getchar(),或scanf(" %c",&c[i][j])#include#include #include int m,n,t;int dx,dy; // 记录起始位置 int Dx,Dy; // 记录门的位置 char c[10][10]; int flag;void DFS(i原创 2012-09-19 22:01:23 · 364 阅读 · 0 评论 -
题目1459:Prime ring problem
// 递归的应用#include#includeint ans[22]; // 保存环中每一个被放入的数bool hash[22]; // 标记之前已经被放入环中的数int n;int prime[]={2,3,5,7,11,13,17,19,23,29,31,37,41};// 素数,若需判断一个数是否为素数,则在其中查找,原创 2014-03-15 10:56:07 · 642 阅读 · 0 评论 -
题目1461:Tempter of the bone
#includechar maze[8][8]; // 保存地图信息int n,m,t; // 地图大小为n*m,从起点到终点能否恰好为t秒bool success; // 是否找到所需状态标记int go[][2]={1,0,-1,0,0,1,0,-1}; // 四方向行走坐标差void DFS(int x原创 2014-03-15 17:42:40 · 494 阅读 · 0 评论 -
题目1458:汉诺塔III
// 与原始汉诺塔不同,这里对圆盘的移动做了更多的限制,即每次只允许将圆盘移动到中间柱子上,或从中间柱子上移出,而不允许由第一根柱子直接移动到第三根柱子 // 若移动K个圆盘从第一根柱子到第三根柱子需要F[K]次移动,那么,先移动K-1个圆盘道第三根柱子需要F[K-1]次移动,再将最大的圆盘移动到中间柱子需要1次移动,然后将K-1个圆盘移动回第一根柱子同样需要F[K-1]次移动,移动最大的盘子原创 2014-03-15 10:24:31 · 811 阅读 · 0 评论 -
题目1120:全排列
#include#include#includeusing namespace std;int main(){ char str[7]; while(scanf("%s", str) != EOF){ int len = strlen(str); do{ printf("%s\n", str);原创 2014-03-15 17:09:13 · 781 阅读 · 0 评论 -
题目1457:非常可乐
// 广度优先搜索 #include#includeusing namespace std;struct N{ // 状态结构体 int a,b,c; // 每个杯子中可乐的体积 int t; // 得到该体积组倾倒次数 };queue Q;bool mark[101][101][101];原创 2014-03-14 16:47:37 · 818 阅读 · 0 评论 -
题目1456:胜利大逃亡
#include#includeusing namespace std;bool mark[50][50][50]; // 标记数组int maze[50][50][50]; // 保存立方体信息struct N{ int x,y,z; int t; };queue Q; // 队列,队列中的元素为状态 int go[][3]原创 2014-03-14 12:22:17 · 688 阅读 · 0 评论 -
题目1059:abc
// 分析之后可知:a,b是1~5, c是1、6 #includeint main(){ for(int a=1;a for(int b=1;b for(int c=0;c if(a*100+b*10+c+b*100+c*10+c==532) printf(原创 2014-03-14 10:54:14 · 517 阅读 · 0 评论 -
题目1045:百鸡问题
#includeint main(){ int n; while(scanf("%d",&n)!=EOF){ for(int x=0;x for(int y=0;y int z=100-x-y; if(x*5*3+y*3*3+z原创 2014-03-14 10:42:34 · 575 阅读 · 0 评论 -
HDU 1075 What Are You Talking About
#include #include #include using namespace std; int main(){ map dic; map::iterator pos; // 以数组方式插入 string a, b; cin >> a; while (true) { cin >> a; if (a == "END") b原创 2012-09-25 21:20:39 · 446 阅读 · 0 评论 -
广度优先搜索 BFS
广度优先搜索算法 一.宽度优先搜索的过程宽度优先搜索算法是最简便和常用的图形搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。宽度优先算法的核心思想是:从初始节点开始,应用算符生成第一层节点,检查目标节点是否在这些后继节点中,若没有,再用产生式规则将所有第一层的节点逐一扩展,得到第二层节点,转载 2012-08-18 09:49:32 · 906 阅读 · 0 评论 -
题目1460:Oil Deposit
#includechar maze[101][101]; // 保存地图信息bool mark[101][101]; // 为图上每一个点设立一个状态int n,m; // 地图大大小n*mint go[][2]={1,0,-1,0,0,1,0,-1,1,1,1,-1,-1,-1,-1,1}; // 8个相邻点与当原创 2014-03-15 12:32:37 · 669 阅读 · 0 评论