
dfs | bfs
文章平均质量分 77
zxxxxzzz
这个作者很懒,什么都没留下…
展开
-
hdu 3006 The Number of set 状压dfs
给出一些集合,求组合出来的新的集合最多有多少个(包括原来的)。原创 2014-11-23 15:50:33 · 470 阅读 · 0 评论 -
hdu Mahjong tree 树dp
题意:给出一棵有根树编号1~n,1为根,树上放n个麻将,编号1~n。要求是对于每个节点放置的麻将编号,这颗树的子节点放置编号必须连续,每一颗子树的放置编号也必须连续,最后求方案数%mod(1e9+7)通过画一下就可以知道,对于每个节点来说,设它的子树大小(节点数量)为sz,那么sz>=2的子树个数不能超过2,否则方案数则一定为0.这样的话再处理一下sz为1的子树数量,最后统计一下每个节点的方案原创 2015-08-12 21:24:48 · 400 阅读 · 0 评论 -
hdu 5335 Walk Out bfs 2015 Multi-University Training Contest 4 09
题意:从(1,1)走到(n,m)时经过的01串二进制的值最小。首先确定从(1,1)走到矩阵中的任意一格(i,j),需要走i+j-2步,那么尽可能的走0且尽早的走0肯定是最优的。因此对于每个相同步数x,可以确定的是走x步能过走到的点,考虑到影响结果的走法 :x步的走下一个x+1步的结果,要么是0,要么是1.那么如果有0的话肯定选0,这种走法,那就将其加进队列,否则若在x+1步走一个0都没遇到,就原创 2015-07-31 17:19:19 · 374 阅读 · 0 评论 -
hdu 5313 Bipartite Graph 贪心+bfs染色
题意:给出一张二分图,问最多在里面能加多少条边,保证还是二分图。首先可以确定,在最后的二分图中,两个部分的点数差最小,则能保证所加边数最多。那么记录当前二分图两个部分分别的点数,对新的联通块加入当前二分图时,少的那部分点加入当前多的那部分点集中。最后对那些独立的点单独处理,即加入使得两部分的点数差最小。最后就是x*y-m,即两部分点数之积-原图变数#include #include #原创 2015-07-26 11:24:27 · 415 阅读 · 0 评论 -
codeforces 329B B. Biridian Forest 精巧的bfs
B. Biridian Foresttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou're a mikemon breeder currently in the middle o原创 2015-04-29 19:29:00 · 496 阅读 · 0 评论 -
poj 3126 Prime Path bfs
题意:给出两个千位的素数,问从第一个素数变换到第二个素数最少需要多少步。变换是指每次只有某位上的数可以改变#include #include #include #include #include #include #include #include #include #include #include using namespace std;#define lson原创 2015-02-25 14:00:33 · 310 阅读 · 0 评论 -
poj 1321 棋盘问题
裸dfs#include #include #include #include #include #include #include #include #include #include #include using namespace std;const int N = 10;int n, k;int ans, now;char a[N][N];int原创 2015-02-01 23:55:17 · 422 阅读 · 0 评论 -
poj 3278 Catch That Cow
bfs#include #include const int N = 100010; using namespace std; queue q;bool vis[N];int step[N]; int bfs(int n, int k){ q.push(n); vis[n] = true; step[n] = 0;原创 2015-02-01 23:58:22 · 421 阅读 · 0 评论 -
poj 3279 Fliptile
题意:给出一个黑白棋盘,每次能翻转坐标为(x,y)及其上下左右的棋子,问是否能通过翻转使得颜色全为白。可以的话输出要翻转的地点且字典序最小,否则输出impossible枚举第一行的状态,通过翻转后的状态,从第二行开始去不断的根据上一行的状态以及确定要不要翻,过程中更新最优答案#include #include #include #include #include #inclu原创 2015-02-02 00:13:04 · 569 阅读 · 0 评论 -
poj 1426 Find The Multiple
灰常水的搜索。 == 因为数据太弱unsigned int64足够存的下答案。。从1dfs下去就行了#include #include #include #include #include #include using namespace std;bool OK;typedef unsigned __int64 ll;ll n;void dfs( ll now, i原创 2015-02-02 00:15:15 · 394 阅读 · 0 评论 -
poj 1753 Flip Game (dfs)
裸爆搜。但是要注意搜索方法..可参考http://blog.youkuaiyun.com/lyy289065406/article/details/6642595#include#include#include#includeusing namespace std;int a[10][10];char c[10][10];int tt;bool flag;void flip(i原创 2014-12-16 20:09:30 · 461 阅读 · 0 评论 -
poj 1184 聪明的打字员
#include #include #include #include using namespace std;struct point{ int step; string s;};string e;map my;queue q;int BFS(point st){ point t, tt; string ss; int i; while(!q.原创 2014-11-30 17:14:00 · 604 阅读 · 0 评论 -
poj 1111 Image Perimeters
先输入一个矩阵,再输入一个X的位置,然后输出与这个X在八个方向能够连起来的所有X组成的图形的周长。然后周长就是围在块里的X旁边的'.'的个数。爆搜即可。。新姿势:cin保平安啊。。scanf("%s", a);这句假如输入字符串长度为5,那么遍历的时候就到5为止了(\0嘛..),就算之前memset(a , 'x', sizeof(a));也没用。而且在5之后的'x'也没了(其实就是输入一原创 2014-11-26 23:17:29 · 484 阅读 · 0 评论 -
poj 2312 Battle City bfs
简单bfs#include#include#include#include#includeusing namespace std;int n, m;struct node{ int x, y, t;}st;#define N 305int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1};int sx, sy, ex, ey;原创 2014-11-27 21:17:55 · 467 阅读 · 0 评论 -
poj 1101 The Game bfs
历尽艰难万险过了的bfs水题感动TUT。类似连连看,但是判断是否从起点能连到终点和求最小转弯数。#include#include#include#include#includeusing namespace std;int n, m;struct node{ int d, x, y, t;};#define N 100int dir[4][2] = { 1, 0,原创 2014-11-27 20:29:58 · 568 阅读 · 0 评论 -
hdu 4771 Stealing Harry Potter's Precious 状压bfs
#include#include#include#include#include#define N 105using namespace std;int key[N][N];char a[N][N];int vis[N][N][1<<5];int dir[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1};struct node { int原创 2014-11-26 20:22:16 · 451 阅读 · 0 评论 -
hdu 5348 MZL's endless loop dfs
题意:给出一张图确定边的方向,使得每个点的abs(入度-出度) 由于所有点总度数 = m*2,其中除去度数为偶数的点,那么剩下度数为奇数的点个数一定为偶数个,而度数为奇数的点,在一张图中只能为起点或者终点,偶数个这样的点说明了,这张图除去所有环之外(某个环里面的点度数一定是偶数),组成的森林中,一定能组成整数条只包含一个起点一个终点的路径,即假设x个度数为奇数的点,x为偶数,那么可以有x/2条原创 2015-08-05 20:19:03 · 388 阅读 · 0 评论