
搜索
文章平均质量分 80
ThinkingLion
这个作者很懒,什么都没留下…
展开
-
poj_1753
题目链接:http://poj.org/problem?id=1753题目大意就是有个4*4的棋盘,每个格子上各放了一个棋子,棋子有两面,一面黑,一面白,初始时棋子既有白的朝上,又有黑的朝上,现在选择任意一颗棋子,将它及它周围的四个棋子(如果有)都翻过来,问最少翻几次,能使整个棋盘上的棋子颜色都相同。如果不能,则输出impossible。这道题目思路是 枚举 + dfs.由题可知,每个原创 2015-01-27 11:12:40 · 323 阅读 · 0 评论 -
poj_3414
源链接:http://poj.org/problem?id=3414题目大意就是给你两个空瓶子,它们的容量分别为a,b,然后给你三种操作Fill,drop,pour,问你是否能使其中一个瓶子的水的体积为c.如果能,输出最小步数和过程,否则输出impossible。模拟+bfs即可。题目不难,就是代码略长,分别判断某中情况下能否进行某个操作即可。一共有六种操作:FILL(1)--0F原创 2015-03-17 16:53:38 · 352 阅读 · 0 评论 -
poj_3126
源链接:http://poj.org/problem?id=3126题目大意就是给你两个素数a,b,问从a开始,只改变其中的一个数字,使它变为另一个素数,一直如此,问是否能够变为b,如果能,输出最小的步数,否则输出impossiblebfs即可。从a开始,枚举改变每一个位置上的数,是素数的话就放入队列,直到找到b,要注意,千位上的数字枚举时得从1开始。#include#include原创 2015-03-17 15:54:17 · 363 阅读 · 0 评论 -
poj_1426
源链接:http://poj.org/problem?id=1426题目大意:给一个n,找出一个n的倍数m,且m只包含1或者0,m位数不大于100位。刚开始我以为m会很大,所以搞了个string来作为队列类型,结果T了,后来我就直接把前200的n符合题意的m打表交了~,- -.就过啦。不过如果答案不会超__int64的话,我们可以bfs()来做,不会超时。#include#inc原创 2015-03-17 15:21:04 · 390 阅读 · 0 评论 -
poj_3278
源地址:http://poj.org/problem?id=3278题目大意:给一个n,k,通过三种操作,n-1,n+1或者n*2最快使得n变为k。记得上次在CF上差不多做过,那道题是没有n+1的,而且那道题我没有用搜索来做,直接模拟搞得。但感觉搜索会更好想一点,首先,我们知道,如果n>=k,那么最快的步数只能是n-k那么分析一下nk,那么它的操作只能是-1,然后再放入队列即可。原创 2015-03-17 14:25:39 · 249 阅读 · 0 评论 -
poj_3009
源链接:http://poj.org/problem?id=3009题目大意就是一块石子从起点到终点,每一次前进,只能一直前进直到碰到障碍位置前一格才停下来,并且该障碍消失,如果出界了,那就算失败,问你最少几次能到达终点,如果大于10次,那就算作不能到达。用DFS来做,每次前进时判断是否出界或者是否与所扔方向碰到的第一块石子之间有间隔,当然,在这过程中我们也要时刻注意是否到达了终点。注原创 2015-03-17 13:28:19 · 438 阅读 · 0 评论 -
poj_1129
源地址:http://poj.org/problem?id=1129把题目大意抽象来说,就是在平面上用最少的颜色来标记所有的点,注意相邻的点不能为同一个颜色。这要用一个定理:四色定律。它是这样表示的::每个平面地图都可以只用四种颜色来染色,而且没有两个邻接的区域颜色相同所以答案最多就是4,建好边以后,我们把第一个点染成颜色1,然后从第二个点开始dfs,对于每一个点,我们都尝试这四种原创 2015-03-20 13:28:22 · 315 阅读 · 0 评论 -
poj_1416
源地址:http://poj.org/problem?id=1416题目很长,意思我是直接百度来的。。- -话说搜索的能力真弱,,去别人那学习了一番。首先,我们知道,如果把每个数字都切成单个的,加起来的和还是大于n的话,那就没戏啦,因为这是和最小的,输出error就行。接下去的就得靠深搜了。我们得确定几个参数,第一个,肯定要有 分割至哪一部分 的参数,因为递归的边界就得是分割到原创 2015-03-20 10:56:35 · 375 阅读 · 0 评论 -
poj_2676
源地址:http://poj.org/problem?id=2676数独游戏。规则是在每一行,每一列和每个划分好的3*3的区块中填入1-9这9个数字,不能少,夜不能重复。我们用col[][],row[][],block[][]来记录每一列,每一行和每一个区块中已经填入的数字。然后搜索时一行一行的放置数字,对于每个没有填入数字的格子,我们填入一个符合题意的数字,然后继续深搜,直到填满原创 2015-03-20 11:58:44 · 439 阅读 · 0 评论 -
poj_2251
源地址:http://poj.org/problem?id=2251题目大意就是有个三维的地牢,L层,每层有R*C的地图,给出起点和终点,问是否能够从起点到达终点。挺简单的,就是把二维换成三维,本来有四个方向,现在有六个方向而已。#include#include#include#include#include#include#include#include#includ原创 2015-03-16 20:39:17 · 332 阅读 · 0 评论 -
poj_3083
源地址:http://poj.org/problem?id=3083题目大意:给一个h*w的地图,里面'#'代表墙,不可以走,'.'代表空地,可以走。要求输出三种走法才能从起点(S)到达终点的步数(E)。第一种:优先向左拐弯(左是相对于人此时的走向来说的)如果走不动,那么再向上,不行的话,再向右,最后还可以向下。第二种:优先向右拐弯,不行的话,依次是向上,向左,向下。第三种:求最短路径。第原创 2015-03-16 16:37:51 · 304 阅读 · 0 评论 -
poj_1321
源链接:http://poj.org/problem?id=1321题目大意就是在n*n的棋盘上防止棋子,注意是'#'的地方才能放,且每行每列最多一个。跟八皇后问题有点相似,我们只要逐行开始放,有一点注意,就是当k#include#include#include#include#include#include#include#include#include#inclu原创 2015-03-16 20:00:38 · 309 阅读 · 0 评论 -
poj_2488
源地址:http://poj.org/problem?id=2488题目大意:输入p,q代表一个q*p大小的棋盘,问你怎样才能使 马 能遍历整个棋盘,如果能,则输出字典序最小的路径,如果不能,输出impossible.首先我们确定是个搜索题,那么我们得先确定搜索的起点,看到网上是这样说的,从任意一个起点出发,如果不能遍历棋盘,那么从别的起点出发也不能;如果从一个起点出发,能够遍历棋盘,那么原创 2015-03-16 09:39:26 · 203 阅读 · 0 评论 -
poj_2956
题目链接:http://poj.org/problem?id=2965题意就是给你一个4*4的举证,包含'+'和'-',可以任意改变其中一种符号,但改变时会把该符号所在的行和列全部都改变,问最少改变几次才能把所有的都变为 '-。这题和poj1753很类似,故可以用枚举+dfs的方法来做。#include#include#include#include#include#incl原创 2015-01-27 13:53:58 · 469 阅读 · 0 评论 -
poj_2531
源链接:http://poj.org/problem?id=2531题目大意:有n个数字,每两个数字之间都有一个权值,把这n个数字分成两个集合,记为A,B,然后得出一个总的权值C = Cij(i∈A,j∈B),求最大的C。我们看到,n最大20,所以我们暴力搜索即可,2^20方还是可以承受的。枚举的时候,对于一个数字p,我们可以把它放入A,也可以把它放入B,分两种情况dfs。#inc原创 2015-03-18 22:12:48 · 371 阅读 · 0 评论