摘要:
http://poj.org/problem?id=1426题意 : 输入一个数n,找n的倍数m,这个m所满足的条件是,每一位数只能由0或1组成,在题目的旁边用红色的注明了Special Judge,表示一开始不懂什么意思,后来问的kkk,原来就是,样例的答案真的是样例,只要你输出符合要求的就行,不一定非要输出样例中给的。思路 : 这个题分类其实是BFS,但在网上看了某大神博客之后瞬间用了DFS做出来了。。。#include#includeusing namespace std ;int mark ;void DFS(long long BB,int n ,int floor){ if(... 阅读全文
摘要:
http://poj.org/problem?id=2251题意 : 就是迷宫升级版,从以前的一个矩阵也就是一层,变为现在的L层," . "是可以走,但是“#”不可以走,从S走到E,求最短的路径,若是找不到就输出“Trapped!”,每一层的同一个位置若都是" . "是可以直接走的,换句话说,map[1][j][k]与map[2][j][k]若都是" . ",是可以从map[1][j][k]走到map[2][j][k]的思路 : 求最短路径,用BFS ,这个题比较搞,分类在DFS里,但用DFS会超时啊,所以倒是欺骗了不少童鞋,这个题我 阅读全文
摘要:
http://poj.org/problem?id=3126题意 : 给你两个四位数,都是素数,一个是初始素数x,一个是目标素数y,让你从x变成y,x每次只能改变1位数,来变成另外一个素数k,再改变k的一位数变成另另外一个素数,这样变下去,找到x变成y需要的最少的次数,如果无法实现,输出Impossible思路 : 每个数字共有4位数,每位数字有10种可能的改变值[0...9],但最高位不允许为0,所以可以将问题转化为图:初始素数和所有经一位数值改变得到的新素数为节点,若素数a经一位改变后变为素数b,则a连向b一条边长为1的有向边,所以若目标素数y在图中,则初始素数到目标素数的路径上的边数即为 阅读全文
摘要:
http://poj.org/problem?id=1321题意 : 我能说这是迄今为止见到的POJ上第二道中文题吗,既然是中文也很好理解,就不详述了思路 : 典型的深搜DFS ;#include#include#includeusing namespace std ;const int maxn = 100 ;int vis[maxn] ;int ch[maxn][maxn] ;int cnt = 0 ,n,k ;int judge(int a,int b)//判断这个棋子的这一行和这一列是否还有别的可以放棋子的地方{ for(int i = 1 ; i >sh ; ... 阅读全文