
【搜索】
sugarbliss
我想要的不多,只是和多数人不一样。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
组合数(dfs)
题目描述找出从自然数1、2、... 、n(0<n<10)中任取r(0<r<=n)个数的所有组合。输入输入n、r。输出按特定顺序输出所有组合。特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。样例输入5 3样例输出543542541532531521432431421321注意:搜索时是i-1,而不是n-1,是为了防止组合数中的数字重复。代码...原创 2018-04-04 10:03:55 · 304 阅读 · 0 评论 -
牛客寒假算法基础集训营1 - C - 小a与星际探索(bfs || 暴力)
题目链接:https://ac.nowcoder.com/acm/contest/317/C思路1:直接bfs。#include<bits/stdc++.h>using namespace std;const int N = 3e3+100;const int M = 5000;int p[N], vis[M], n;queue <int> q;int...原创 2019-01-23 17:35:11 · 434 阅读 · 3 评论 -
牛客练习赛41-C-抓捕盗窃犯(dfs or 并查集)
题目链接:https://ac.nowcoder.com/acm/contest/373/C思路:把每个地点看作一个点,那么每个点一定有且仅有一条有向出边。每个点出度只有1,如果某些点组成了一个有向环,这个环上所有点不会有额外的出边,即这个环一定是一个简单环。也易证每个点最终都会走向一个环。结论:单独看待每个联通块,每个连通块一定有且只有一个环,只要在这个环上任何一个点建立哨卡,就能抓到这个...原创 2019-03-02 18:05:38 · 392 阅读 · 0 评论 -
牛客寒假算法基础集训营4 - C - Applese走迷宫(BFS)
题目链接:https://ac.nowcoder.com/acm/contest/330/C思路:BFS多开一维标记状态,然后在搜索的时候单独判断一下遇到'@'的情况就好了(将切换状态和不变都扔入队列中),然后按题意模拟即可。AC代码:#include <bits/stdc++.h>using namespace std;struct node{ int x...原创 2019-03-06 10:19:31 · 262 阅读 · 0 评论 -
牛客练习赛41-D-最小相似度(BFS)
题目链接:https://ac.nowcoder.com/acm/contest/373/D思路:M最大只有20,如果把每个二进制串看成一个状态,最多只有2^20 = 1048576个状态,可以暴力搜索。如果我们把某个串改变1位,这个改变后的串和这个串的答案就是m−1,比如01001,随便改变1位变成01000,01001 ^ 01000 = 00001答案就是m-1。我们要找的是m-...原创 2019-03-03 19:07:41 · 333 阅读 · 1 评论 -
HDU1495 - 非常可乐(BFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495思路:倒水共有6中情况既(A->B,A->C),(B->A,B->C),(C->A,C->B),我们可以写一个双重循环来模拟这六种情况。当 i -> j,i给j倒水的时候有两种情况,① i 可以把 j 给装满 ② i 装不满 j 。标记数组开为3维,每...原创 2019-03-26 16:42:49 · 204 阅读 · 1 评论 -
Codeforces Round #548 (Div. 2) C. Edgy Trees(dfs || 并查集)
题目链接:https://codeforces.com/contest/1139/problem/C题意:给了一棵树,n个点,m条边。让从中选k个点,使得从a1到a2,a2到a3,ak-1到ak的路径中至少经过一条黑色的边,问这样的集合有多少个。思路:在长度为k的序列里,由于每个位置有n种可能,所以总的可能数为,用总的可能数减去仅经过红边的序列数即可。然后统计只经过红边的节点在同一个连通区...原创 2019-03-23 17:18:58 · 214 阅读 · 0 评论 -
HDU - 5323 - Solve this interesting problem(爆搜+剪枝)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5323题意:一个线段树所有叶子节点编号为0 ~ n,给出 l 和 r ,求出最小的n使得存在一个节点的左值等于l,右值等于r。思路:根据[l, r]区间我们可以推出它的父亲节点区间的四种可能,即[(l-1)*2-r+1, r],[(l-1)*2-r, r],[(l-1)*2-r, r],[l, ...原创 2019-04-16 20:14:30 · 250 阅读 · 0 评论 -
第三届河南省程序设计大赛 - E - 虚拟城市之旅(BFS)
题目链接:http://nyoj.top/web/contest/problem/cid/7/num/E思路:题目要求1出发,到n结束。我们用第一次用bfs从1到n跑正向图求一下经过点的最小权值,第二次用bfs从n到1跑反向图求一下经过点的最大权值,然后求出经过每一个点的最大权值和最小权值之差,最大的既是答案。#include <bits/stdc++.h>using n...原创 2019-05-01 19:31:42 · 182 阅读 · 0 评论 -
HDU - 4771 - Stealing Harry Potter's Precious(BFS + DFS)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4771题意:给一个n*m的矩阵,小偷从@出发可以走“.”,墙是“#”不可走,之后又K个珠宝,并且给你这K个珠宝的坐标,问小偷最少要走多少步可以吧珠宝偷完,如果不能偷完输出“-1”。思路:算上起点"@"一共k+1个点,最终步数的多少一定跟取宝物的顺序有关,我们可以求出k+1个点任意两点的距离,然后...原创 2019-04-18 21:37:12 · 289 阅读 · 0 评论 -
HDU - 1142 - A Walk Through the Forest(dijkstra + 记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1142题意:假设A和B是相连的,当前在A处,如果B到终点的距离小于A到终点的距离,则可以从A通往B处,问满足这种的条件的路径条数。思路:从终点出发求每一个点的最短路,然后那些最短路的值记录起来,作为能否通过的判断条件。最后用记忆化搜索来搜索出一共多少条符合要求的路。#include <...原创 2019-04-18 22:05:02 · 225 阅读 · 0 评论 -
Codeforces Round #168 (Div. 2) B. Convex Shape(BFS || 模拟)
题目链接:https://codeforces.com/problemset/problem/275/B题意:从任意一个黑格子到任意一个黑格子都可以互达,且方向变化不超过1次(只能走黑格子)。模拟思路:从一个黑色格到任意一个黑色格看能否通过两种方式到达其他任意一个黑色格子。#include <bits/stdc++.h>using namespace std;#def...原创 2019-04-19 14:52:39 · 330638 阅读 · 0 评论 -
第五届新疆省ACM-ICPC程序设计竞赛(重现赛)J - 异或的路径(按位操作)
题目链接:https://ac.nowcoder.com/acm/contest/911/J思路:表示从根到的异或和,表示从根到的异或和,那么两点之间的路径异或和就可以用表示。显然可以用求出,考虑到的范围,显然不能暴力,只能按位考虑,要求的是异或和,那么每一位的贡献就是1的个数和0的个数乘积,然后乘上每一个二进制位对十进制的贡献,由于每对都会出现两次,最后即可。#include ...原创 2019-06-05 10:50:07 · 312 阅读 · 0 评论 -
2019CCPC河北省大学生程序设计竞赛 - L - smart robot(dfs)
题目链接:https://ac.nowcoder.com/acm/contest/903/L题意:给你 n * n的方阵,你可以从任意一个数字开始走,可以走上下左右四个方向,走过的数字会被拼合,拼合的数字没有前导0,问最小不能拼合出来的数字是多少?思路:把每个数字作为起点开始dfs,把已经搜索过的数字进行标记,然后从0开始检索,输出第一个未出现的数字就是答案。#include<...原创 2019-05-28 16:12:56 · 1027 阅读 · 0 评论 -
牛客假日团队赛1 - J - (dfs染色)
题目链接:https://ac.nowcoder.com/acm/contest/918/J思路:对于传出每一个球最后一定在两头奶牛之间来回传递,先从第一头奶牛向右传递,将接过球的奶牛标记一种颜色,如果出现来回传递的情况就,然后从没有被染色的奶牛再次传递,并染新的颜色,由于颜色会覆盖,所以最后颜色的种类数就是答案。#include <bits/stdc++.h>using ...原创 2019-06-08 19:31:30 · 379 阅读 · 0 评论 -
牛客假日团队赛2 - F - 跳跃(最少步数)
题目链接:https://ac.nowcoder.com/acm/contest/924/F#include <bits/stdc++.h>using namespace std;#define debug(x) cerr<<#x<<'='<<(x)<<endl;#define debugp(x) cerr<<#x...原创 2019-06-16 16:52:51 · 461 阅读 · 0 评论 -
牛客寒假算法基础集训营5-I-炫酷镜子(dfs)
题目链接:https://ac.nowcoder.com/acm/contest/331/I思路:直接模拟搜索即可。#include<bits/stdc++.h>using namespace std;char mp[501][501];int n,m;int dir[4][2]={1,0,0,1,0,-1,-1,0};int dfs(int x,int y){...原创 2019-01-31 23:31:22 · 223 阅读 · 0 评论 -
poj3126 - Prime Path(BFS)
题目链接:http://poj.org/problem?id=3126题意:给定两个素数n和m,要求把n变成m,每次变换时只能变一个数字,即变换后的数与变换前的数只有一个数字不同,并且要保证变换后的四位数也是素数。求最小的变换次数;如果不能完成变换,输出Impossible。思路:广搜枚举每一位数字加入队列(个位1-9的奇数,十位,百位0-9,的数字,千位1-9的数字),能得到答案就一定是...原创 2019-01-09 20:51:10 · 186 阅读 · 0 评论 -
Oil Deposits(dfs)
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides th...原创 2018-04-04 10:08:46 · 187 阅读 · 0 评论 -
最少步数(BFS)
题目描述这有一个迷宫,有0~8行和0~8列: 1,1,1,1,1,1,1,1,1 1,0,0,1,0,0,1,0,1 1,0,0,1,1,0,0,0,1 1,0,1,0,1,1,0,1,1 1,0,0,0,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,1,0,0,1 1,1,0,1,0,0,0,0,1 1,1,1,1,1,1,1,1,10表示道路,1表示墙。现在输入一...原创 2018-04-04 11:03:48 · 1125 阅读 · 0 评论 -
Educational Codeforces Round 50 (Rated for Div. 2) C. Classy Numbers(dfs+二分)
题目链接:http://codeforces.com/contest/1036/problem/C题意:给你一个区间,求非零数字不超过3个的十进制数的个数。思路:构造所有的符合条件的数放入vector,然后二分查找上下界。#include <bits/stdc++.h>using namespace std;#define ll long long#define I...原创 2018-09-08 17:06:48 · 343 阅读 · 0 评论 -
牛客练习赛27 水图(最短路 or dfs)
----------------------------------------------------传送门----------------------------------------------------题目描述 小w不会离散数学,所以她van的图论游戏是送分的小w有一张n个点n-1条边的无向联通图,每个点编号为1~n,每条边都有一个长度小w现在在点x上她想知道从点x出发...原创 2018-10-01 20:09:16 · 366 阅读 · 3 评论 -
zstu 4245 KI的斐波那契(dfs)
----------------------------------------------------传送门----------------------------------------------------DescriptionKI十分喜欢美丽而优雅的斐波那契数列,最近他新认识了一种斐波那契字符串,定义如下f (0) = b, f (1) = a,f (2) = f (1)...原创 2018-10-10 15:22:32 · 360 阅读 · 0 评论 -
Wannafly挑战赛28-A-msc和mas(模拟or搜索)
题目链接:https://ac.nowcoder.com/acm/contest/217/A题目描述 msc有一天遇见了mas,于是他们开始玩游戏。msc和mas初始各有一个正整数A和B,并且他们共同设置了一个阈值L。然后游戏就开始了,对于每一局操作的人,假设他手上拿着的是数字x,对手手上拿着的是数字y(记这一局开始时y的数值为y0),那么:1、如果x>L,那么他就胜利了,否则...原创 2018-11-15 15:40:19 · 270 阅读 · 0 评论 -
NOIp2000提高组-单词接龙(dfs)
题目链接:https://www.luogu.org/problemnew/show/P1019思路:首先要知道两个单词合并时,合并部分取的是最小重叠部分,相邻的两部分不能存在包含关系就是说如果存在包含关系,就不能标记为使用过,每个单词最多出现两次。搜索的时候开个vis标记数组,用来标记每个单词使用的次数,从开头字母开始搜索,两层for,第一层for搜索每一个单词,第二层for是判断我们搜索的...原创 2018-11-28 21:50:14 · 1431 阅读 · 1 评论 -
Wannafly挑战赛29-御坂美琴(递归模拟)
链接:https://ac.nowcoder.com/acm/contest/271/A来源:牛客网 题目描述misaka是呱太爷爷的小粉丝,呱太爷爷有一句话说的好:"一尺之棰,日取其半,万世不竭"。misaka现在有 n 个呱太玩偶放在一堆,每一次操作,misaka会选择当前个数 > 1 的一堆呱太玩偶。并将这一堆呱太玩偶分成 和 两堆,x 是当前这一堆玩偶的个数。现在 m...原创 2018-11-26 17:14:46 · 313 阅读 · 3 评论 -
UVA11624-Fire!(双点BFS)
题目链接:https://vjudge.net/problem/UVA-11624题意:乔在迷宫中工作。不幸的是,迷宫的一部分有着火了,迷宫的主人忽略了制造火灾逃跑计划。帮助乔逃离迷宫。鉴于乔在迷宫中的位置以及迷宫的哪个方块如果着火,你必须确定乔是否可以退出迷宫火焰到达了他,他能做多快。乔和火每分钟每分钟移动一个方格,垂直或水平(不是对角线)。火势四个方向蔓延来自每个着火的广场。乔可以退出任何...原创 2018-12-02 20:43:34 · 269 阅读 · 0 评论 -
FZU2150-Fire Game (双点BFS)
题目链接:https://vjudge.net/problem/FZU-2150题意:最多可以选择两处火源,要把整个地图上的草地都点燃,火可以往上下左右四个方向扩散,能否把所有的草地都点燃,能的话输出最少时间,不能输出-1;'#'代表草地,'.'表示空地,空地不会起火。思路:因为地图很小,所以暴力枚举两个起火点然后两个点同时进行BFS。因为不知道终点所以我们需要把走到每一个点的时间都存下来...原创 2018-12-02 21:29:49 · 458 阅读 · 0 评论 -
P1219 八皇后(搜索)
题目链接:https://www.luogu.org/problemnew/show/P1219思路:回溯,标记。开四个数组a代表行,b代表列,book代表右上到左下的对角线,vis代表左上到右下的对角线。我们发现:对于一条从右上到左下的对角线,其上的棋子坐标应满足x+y为一定值;对于一条从左上到右下的对角线,其上的棋子坐标应满足x-y为一定值,为了避免负数的产生,代码中用x-y+n来...原创 2018-11-28 20:18:53 · 234 阅读 · 0 评论 -
哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(高年级)F-小乐乐下象棋(记忆化搜索)
题目链接:https://ac.nowcoder.com/acm/contest/301/F思路:记忆化搜索(DFS)dp[ x ][ y ][ s ] 代表第 s 步 走到 x y 的方案数。搜索的时候记录状态,避免不必要的重复搜索。#include <bits/stdc++.h>#define maxn 205#define ll long longconst in...原创 2018-12-08 16:38:56 · 224 阅读 · 0 评论 -
Codeforces Beta Round #6 (Div. 2 Only)D. Lizards and Basements 2(dfs+剪枝)
题目链接:http://codeforces.com/contest/6/problem/D题目大意:你是火系法师,对面有一排敌人,每个敌人都有HP,你要向他们扔火球,火球对目标 i 有一个主伤害a,对i+1和i -1有一个溅射伤害b。法师只能攻击到2号到n-1号。问你至少要扔多少个火球才能杀死所有敌人,并依次输出每个火球的攻击目标。注意杀死的条件是HP < 0。思路:数据较少,直接...原创 2018-12-08 20:30:01 · 256 阅读 · 0 评论 -
Codeforces Beta Round #6 (Div. 2 Only)B. President's Office(dfs)
题目链接:http://codeforces.com/contest/6/problem/B题意:给出一个n*m的矩阵 ,描述桌子的布局。总统的桌子和他的副手的桌子相邻,每一个人的桌子有它独有的颜色。问总统有多少个副手。思路:直接搜索与总统相邻的桌子,统计答案,注意总统的副手一定和总统相邻。#include <bits/stdc++.h>using namespace ...原创 2018-12-13 18:04:27 · 231 阅读 · 0 评论 -
Hello 2019 B. Petr and a Combination Lock(二进制枚举 || dfs)
题目链接:http://codeforces.com/contest/1097/problem/B题意:给你n个数字,让这n个数字相加减,如果是360的倍数或者是0就输出YES,否则输出NO。思路:二进制枚举每一种状态,或者直接暴力搜索。二进制枚举:#include<bits/stdc++.h>using namespace std;const int maxn=...原创 2019-01-06 21:38:28 · 526 阅读 · 0 评论 -
2019牛客暑期多校训练营(第二场)F - Partition problem(dfs)
题目链接:https://ac.nowcoder.com/acm/contest/882/F题意:给你一个N,现在有2*N个人,你要做的就是把这2*N个人分成两队一队N个人,下表就是每个人对其他人的作用,让你求两个队伍作用的最大值,队伍作用的最大值是每个人对另一支队伍的作用的和。思路:先把所有人分到一队,另一个队对n个人只有要和不要两选择,dfs暴力枚举这个人是不是分进另一个队伍里,然后取...原创 2019-07-29 17:05:17 · 198 阅读 · 0 评论