
搜索
穆林幕
做个苦行僧!
展开
-
hdu1242
//有多条路径,如何选出最短的那条就退出呢?// 还以为是简单的bfs 但其实不是//用优先队列 又做了一遍还是不对 #include#include#include#includeusing namespace std;int r,c;char map[210][210];bool vis[210][210];int dx[]={1,-1,0,0};int dy[]原创 2014-07-30 23:55:07 · 566 阅读 · 0 评论 -
[搜索]hdu5335
题意: 给出01矩阵,问从(1,1)到(n,m)走过的路中所有01组成的二进制字符串所代表的数字最小是多少。分析: 首先前缀0是要去掉的,另外发现只有不断地向下和向右走就能达到最短路。所以首先dfs找到所有能走的0的位置,去掉前缀0.然后bfs向右下角进行,有0 的地方就走0,不走1,没有任何0的情况下才走1.如果有多个0就都走,看谁后面还有0.如果没有0,就全部的1都原创 2015-08-18 15:48:02 · 649 阅读 · 0 评论 -
[搜索]poj1011
题意: 给出你n个小木棒,要求还原成多个长度相同的完整木棒,并求出符合要求的最短的木棒的长度。 经典搜索题。 分析: 这样的题不确定因素很多,所以只能遍历定一个条件,根据这一条件去遍历确定另一条件。另外这题还要剪枝才行,不然会超时。poj1011#include <cstdio>#include <cstring>#include <cmath>原创 2015-08-17 23:41:10 · 400 阅读 · 0 评论 -
[搜索]CodeForces505B
题意: 找两点之间相同颜色连成的道路的条数。 分析: BFS+模拟#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <vector>#include <map>#include <set>#include <utility> #include <s原创 2015-08-29 09:49:24 · 771 阅读 · 0 评论 -
[搜索]hdu5355
题意: 将n分成一样大小的m份. 分析: 很经典的一道题。如果n==2m 那么2m*(2m+1)肯定能成功。然后就按照这个点,分别一直减去2m,如果n<=40的话就可以爆搜了。先找规律处理一部分,然后暴力一部分。这题很经典的说。#include<iostream> #include<stdio.h> #include<math.h> #include原创 2015-08-25 12:56:27 · 704 阅读 · 0 评论 -
[DFS]poj2676(2918)
题意: 数独问题,给出一些点,然后要求填满格子。每行没列1-9不能重复,每个3*3的小格子也不能重复。分析: 暴力搜索,那么主要的问题就是每次如何判断是否冲突。行和列的比较好想,row[i][j]=1表示第i行的j已经被占了,col[i][j]=1表示第i列的j已经被占了,那么每个小格子呢? 首先,每行每列都是012、345、678那么每个j/3表示它在这以行的第j/3个格子里,i/3表示在第原创 2015-05-19 23:03:56 · 625 阅读 · 0 评论 -
[暴力]poj1166
题意: 给出9【A-I】个表,9中操作,每种操作只能拨动部分表, Move Affected clocks 1 ABDE2 ABC3 BCEF4 ADG5 BDEFH6 CFI7 DEGH8 GHI9 EFHI 问,最少几步把表都拨到12点原创 2015-05-22 19:28:04 · 606 阅读 · 0 评论 -
[DFS]poj1129
题意: 就是给出一个图,涂色,相邻的点不能涂一样的颜色,问最少涂几种颜色?分析: 首先数据量很小,可以暴力搜索。刚开始想的是bfs,一层一层的搜,但总写不对。。,好吧,换种思路,一个点一个点的搜吧。#include <cstdio>#include <cstring>#include <cmath>#include <iostream>#include <vector>#include原创 2015-05-22 15:05:36 · 605 阅读 · 0 评论 -
[DFS]poj1416
题意: 如果输入的串分割后的和最小都比Target大,那就输出error. 如果有多种结果一样,那么就输出rejected. 否则,输出最大的和 和分别是哪些子串。这个题都是整数,所以比较简单。直接搜索所有的情况就好了,还有一点是打印路径,一般可以用path[]或者pre[]的数组表示,但是这里数据有点大我就用的map水过了。。#include <cstdio>#include <cstri原创 2015-05-18 12:38:20 · 616 阅读 · 0 评论 -
[DFS && BFS]poj3083
题意: 给出起点和终点,问分别靠着墙往左走,往右走,直接最短路分别是多少? #代表不能走,‘.’代表能走,S是起点,E是终点。 Sample Input2 8 8#…….####..####..####..####.…#..S#E9 5#.#.#.#.S…….E.#.#.#.#Sample Output37 5 5 17 17 9分析: 这道题的主要难点就是如何选择靠右走与靠左走。在格子原创 2015-05-14 23:46:26 · 404 阅读 · 0 评论 -
[DFS]poj1321
题意: 就是在给定的n*n的棋盘上放k个棋子,要求不能同行同列。并且棋盘上只有#的位置才能放棋子,问总共有多少种情况?分析: 首先看到不同行不同列,那么想到的是神马呢?八数码问题。那么就回想已有的东西里哪些可以用到。那么这个题也就可以和八数码问题一样,按行来操作,那么只标记列来标明是否冲突,那么问题就很明了了。抽象为一维的数据了。但是,如果k==n的话,那这就和八数码没什么区别了。可是这里k#i原创 2015-05-13 23:12:56 · 378 阅读 · 0 评论 -
Ural1033 FloodFill 算法
1033. LabyrinthTime limit: 1.0 secondMemory limit: 64 MBAdministration of the labyrinth has decided to start a new season with new wallpapers. For this purpose they need a program to calcu原创 2014-10-04 15:03:16 · 594 阅读 · 0 评论 -
poj1426 同余模定理+二叉树
Find The MultipleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 18386 Accepted: 7442 Special JudgeDescriptionGiven a positive integer n, write a prog原创 2014-10-03 14:30:40 · 555 阅读 · 0 评论 -
Ural1060 (数位+bfs)
1060. Flip GameTime limit: 2.0 secondMemory limit: 64 MBFlip game is played on a rectangular 4×4 field withtwo-sided pieces placed on each of its 16 squares. One side of each piece is whit原创 2014-10-11 00:27:08 · 570 阅读 · 0 评论 -
hihocoder 1049 后序遍历
题意:给出先序遍历和中序遍历,求出后序遍历的结果。算法没什么,大家sho原创 2014-10-02 09:23:47 · 1352 阅读 · 2 评论 -
poj1111
一道很好玩的题,遍历图,然后标记。最后访问//求周长 标记后求周围‘。’的个数就OK #include#include#include#includeusing namespace std;int r,c,stai,staj;char map[110][110];bool vis[110][110];int dx[]={0,0,1,-1,-1,-1,1,1}; //前四个原创 2014-07-30 23:59:53 · 574 阅读 · 0 评论 -
poj1481
题意:找出**中包围的X个数,相连的为原创 2014-07-28 22:48:21 · 567 阅读 · 0 评论 -
[搜索]hdu5336
题意: 有一个r 行 c 列的格子,给出n个格子里有水滴的大小。再给出时间限制T,使得水滴从(sx,sy)位置开始爆破,当飞渐的水遇到格子里的静态水时就会聚在一起,当聚集的水滴大小>4时就会爆破。问在T时给定的n个位置格子里的水滴情况,如果没有爆破就输出:1 格子里水滴大小。否则输出:0 爆破的时间。分析 :见代码注释。#include <cstdio>#include <cstr原创 2015-08-18 23:26:58 · 491 阅读 · 0 评论