随笔分类 -  搜索DorB

摘要:题目:http://acm.hdu.edu.cn/showproblem.php?pid=1026给出起始点和目的点,问如何用最少的时间到达,并输出路径,如果一个点是个数字 t ,表示必须在这个点逗留 t 秒,View Code 1 const int N = 110; 2 char map[N][N]; 3 int vis[N][N]; 4 int n,m; 5 int sum; 6 int move[4][2] = {{1,0},{-1,0},{0,-1},{0,1}}; 7 struct node 8 { 9 int x,y;10 int tim;11 int ... 阅读全文
posted @ 2012-11-22 11:00 AC_Girl 阅读(136) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=1111给出你个 n * m的图形,然后给出你鼠标点击的位置(鼠标只可以点击 X),鼠标可以从点击的点往八个方向走,问鼠标可以点击的区域的周长View Code 1 typedef long long ll; 2 const int N = 22; 3 bool vis[N][N]; 4 char map[N][N]; 5 int ans; 6 int n,m; 7 int move[8][2] = {{-1,0},{1,0},{0,-1},{0,1},{-1,-1},{-1,1},{1,1},{1,-1}}; 8 struct no. 阅读全文
posted @ 2012-09-17 11:31 AC_Girl 阅读(153) 评论(0) 推荐(0)
摘要:题目:http://poj.org/problem?id=3373题意:给出2个整数n(n<10^100)和k(k<10000),求满足以下条件的整数m 1、m与n位数相同 2、m能被k整除 3、满足以上两点时,m和n在相同位置的地方,数字不同的个数最少 4、满足以上三点时,m值最小题目里面那个mod(看的别人的)定义数组mod[101][10],mod[i][j]=((10^i)*j)%k,先求出:0123456789(%k)0102030405060708090(%k)0100200300400500600700800900(%k).....通过递推式mod[i][j]=(mo 阅读全文
posted @ 2012-08-10 20:23 AC_Girl 阅读(266) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2251题目就是给你一个三维的矩阵,让你从‘S’ 位置找到 ‘E’ 所走的步数,其实就是bfs类型的水题,只不过三维的可能感觉起来有点麻烦。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 #include<queue> 5 using namespace std; 6 #define inf 9999999 7 #define N 35 8 int move[6][3] = { {0,0,-1},{0,0,1},{ 阅读全文
posted @ 2012-03-20 21:29 AC_Girl 阅读(198) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=1321 题目没什么好说的,算是dfs里面的一道水题。 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 using namespace std; 5 #define N 10 6 char str[N][N]; 7 int r[N],c[N]; // r 用来标记该行已经有旗子放了,c用来标记该列有棋子放上了 8 int sum,num; 9 int n,k;10 void dfs(int x)11 {12 int i,j;13 阅读全文
posted @ 2012-03-20 20:30 AC_Girl 阅读(159) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=2488题目是说有一个骑士,在一个地图里以“日”字型走,看是否存在一条路径能使得他把每一个格子都走完,并且每个格子只走一次。如果存在这样的路径就按字典序输出这样的路径,如果不存在就输出impossible。其中地图中 列是用A—Z表示,行用数字表示提醒一下,深搜的时候一定要按字典序的形式进行搜索,否则输出的路线就不是字典序了。本来是一道很水的题,就是因为没有注意搜的方向,错了好几次 1 #include<stdio.h> 2 #include<string.h> 3 #include<iostream> 4 阅读全文
posted @ 2012-03-06 20:32 AC_Girl 阅读(222) 评论(0) 推荐(0)
摘要:http://poj.org/problem?id=3278题目输入n和m,n代表人的位置,m代表牛的位置,牛是不动的,而人动的规则是可以前进一步,后退一步,也可以直接在现在的位置上乘2(乘2算是一步),问你进过多少步可以最快的把牛抓到。直接用bfs,调用库函数的队列就可以了 1 #include<stdio.h> 2 #include<iostream> 3 #include<string.h> 4 #include<queue> 5 #define N 500000 6 using namespace std; 7 int move[2]={ 阅读全文
posted @ 2012-03-05 20:00 AC_Girl 阅读(163) 评论(0) 推荐(0)
摘要:http://acm.hrbeu.edu.cn/index.php?act=problem&id=1004&cid=21这道题类似与hdu的1095http://acm.hdu.edu.cn/showproblem.php?pid=1059题目意思:给你一串数,让你找能不能使的这些数分成6个集合,而且每个集合内元素的和为{sum(总)/6}思路:首先呢如果sum(总)%6不为零,则一定不能平分.如果为零给给定的数串排序,如果a[N]>{sum(总)/6}也不能平分,如果不大于,那么就按正常的dfs找就行了。#include<stdio.h>#include&l 阅读全文
posted @ 2011-12-02 12:09 AC_Girl 阅读(219) 评论(0) 推荐(0)