搜索
文章平均质量分 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 · 361 阅读 · 0 评论 -
题目1459:Prime ring problem
// 递归的应用 #include #include int 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 · 640 阅读 · 0 评论 -
题目1461:Tempter of the bone
#include char 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 · 490 阅读 · 0 评论 -
题目1458:汉诺塔III
// 与原始汉诺塔不同,这里对圆盘的移动做了更多的限制,即每次只允许将圆盘移动到中间柱子上,或从中间柱子上移出,而不允许由第一根柱子直接移动到第三根柱子 // 若移动K个圆盘从第一根柱子到第三根柱子需要F[K]次移动,那么,先移动K-1个圆盘道第三根柱子需要F[K-1]次移动,再将最大的圆盘移动到中间柱子需要1次移动,然后将K-1个圆盘移动回第一根柱子同样需要F[K-1]次移动,移动最大的盘子原创 2014-03-15 10:24:31 · 807 阅读 · 0 评论 -
题目1120:全排列
#include #include #include using 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 · 779 阅读 · 0 评论 -
题目1457:非常可乐
// 广度优先搜索 #include #include using namespace std; struct N{ // 状态结构体 int a,b,c; // 每个杯子中可乐的体积 int t; // 得到该体积组倾倒次数 }; queue Q; bool mark[101][101][101];原创 2014-03-14 16:47:37 · 817 阅读 · 0 评论 -
题目1456:胜利大逃亡
#include #include using 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 · 686 阅读 · 0 评论 -
题目1059:abc
// 分析之后可知:a,b是1~5, c是1、6 #include int 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 · 516 阅读 · 0 评论 -
题目1045:百鸡问题
#include int 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 · 573 阅读 · 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 · 444 阅读 · 0 评论 -
广度优先搜索 BFS
广度优先搜索算法 一.宽度优先搜索的过程 宽度优先搜索算法是最简便和常用的图形搜索算法之一,这一算法也是很多重要的图的算法的原型。Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽度优先搜索类似的思想。 宽度优先算法的核心思想是:从初始节点开始,应用算符生成第一层节点,检查目标节点是否在这些后继节点中,若没有,再用产生式规则将所有第一层的节点逐一扩展,得到第二层节点,转载 2012-08-18 09:49:32 · 903 阅读 · 0 评论 -
题目1460:Oil Deposit
#include char maze[101][101]; // 保存地图信息 bool mark[101][101]; // 为图上每一个点设立一个状态 int n,m; // 地图大大小n*m int 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 · 666 阅读 · 0 评论