
搜索
文章平均质量分 68
皮得一1
这个作者很懒,什么都没留下…
展开
-
hdu 1045 Fire Net(dfs)
题意:给出一个n和一幅N*N的图,图中包含'.'和'X'两种字符,要求在上面放上碉堡,碉堡能攻击他所在的行和列,但不能攻击墙,求最多能放多少个碉堡。思路:数据量不大,dfs搜索每一个点,并判断点所在的行列是否满足条件。#include #include using namespace std;const int MAX = 6;int point[4][2] = {-1,0,0,-原创 2016-01-27 18:59:21 · 388 阅读 · 0 评论 -
poj 1426 Find The Multiple
题意:给一个数n,让你找出一个只有1,0,组成的十进制数,要求是找到的数可以被n整除。做法:假如n=6;1余n=1;10余n=1*10%6=4;11余n=(1*10+1)%6=5;100余n=4*10%6=4;101余n=(4*10+1)%6=5;110余n=5*10%6=2;111余n=(5*10+1)%6=3;原创 2016-01-21 16:33:56 · 380 阅读 · 0 评论 -
poj 3279 Fliptile(dfs)
题意:一个M*N的矩阵中,有数字1和0,现在要把所有的1变成0,改变某一个数字那个它的上下左右4个数字都会被改变,即0变1,1变0,异或运算。如果有解,则输出最少的改变矩阵位置的策略,反之则输出“IMPOSSIBLE”。思路:首先确定第一行的翻转情况,确定第一行,后面的也都确定了。#include#include#includeusing namespace std;int map原创 2016-01-21 16:06:44 · 425 阅读 · 0 评论 -
poj 3278 Catch That Cow(bfs)
题意:给定两个整数n和k,通过 n+1或n-1 或n*2 这3种操作,使得n==k,输出最少的操作次数。bfs题,dfs会超时。方法一:#include #include #include #include #define MAX 100005using namespace std;queue q;int step[MAX]; //跟随数组,记录步数bool vis原创 2016-01-20 22:19:49 · 315 阅读 · 0 评论 -
poj 2251 Dungeon Master(bfs)
题意:一个立体空间, 输入三个数,L,R,C,代表有L个平面,R行,C列,.代表可以走,#代表不能走,S代表开始点,E代表结束点,问从S开始走,对每个位置,有六个走法,即空间的六个方向的走法(上下东南西北),一分钟可以走一个点,问从S走到E点,最少可以经过多少分钟,若不能到达,则输出Trapped!#include #include #include using namespace st原创 2016-01-20 19:47:31 · 316 阅读 · 0 评论 -
poj 1321 棋盘问题(dfs)
Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及原创 2016-01-20 11:18:39 · 403 阅读 · 0 评论 -
hdu 2553 N皇后问题(基本dfs)
思路:dfs解决,使每个皇后不在同一行、同一列、同一对角线。需要预处理,否则超时。 #include#include#includeint n,ans;int map[15];int visit[15];int sol[15];void dfs(int k){ int i,j,flag; if(k==n+1) { ans++; return; } fo原创 2015-11-29 21:26:02 · 626 阅读 · 0 评论