
DFS & BFS
Mr.Gzj
这个作者很懒,什么都没留下…
展开
-
P1141 迷宫(记忆化BFS)
题目描述有一个仅由数字00与11组成的n \times nn×n格迷宫。若你位于一格0上,那么你可以移动到相邻44格中的某一格11上,同样若你位于一格1上,那么你可以移动到相邻44格中的某一格00上。你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。输入输出格式输入格式: 第11行为两个正整数n,mn,m。下面nn行,每行nn个字符,字符只可能...原创 2018-11-19 22:25:20 · 289 阅读 · 0 评论 -
Rainbow Roads(dfs序+树上差分)
题目链接,D题题意: 给出一颗树,树上每条边都有一个颜色,定义如果以这个点为端点的所有简单路径都没有相邻的两条边颜色相同时,这个点为good点,求goodgoodgood点的数量以及是哪个点。思路:假设节点u和节点v均与节点w相邻,且e(w,u)与e(w,v)颜色相同,那么要分两种情况:uuu,vvv均是w的子树,则这两个点的子树上所有的点包括这两个点都不是goodgoodgood点。...原创 2019-10-05 00:40:32 · 297 阅读 · 0 评论 -
DFS序
DFS序就是将树形结构转化为线性结构,用dfs遍历一遍这棵树,进入到x节点有一个in时间戳,递归退出时有一个out时间戳,x节点的两个时间戳之间遍历到的点,就是根为x的子树的所有节点,他们的dfs进入时间戳是递增的。同时两个时间戳构成了一个区间,x节点在这段区间的最左端,这个区间就是一棵根节点为x的子树,对于区间的操作就是其他维护方式的应用了。模板题:POJ3321题意:给一个普通...原创 2019-10-04 23:06:29 · 253 阅读 · 1 评论 -
Gym 101652T Security Badge(DFS)
题意:有n个点,m条边,还有一个总上界k,你需要从s点走到t点,对于每条边u,v,l,r,你手中持有的权值需要在[l,r]的范围内才能从u走到v,问有多少种不同的权值可以成功地从s点走到t。思路:一开始直接从[1,k]开始搜,到每个可行的区间就存下来,最后对合法区间求和,但是不行,可能回溯太耗时间?将每一扇们门的上下界都存储起来,我们可以知道,最终合法的若干区间的端点值一定来自于这些点,那...原创 2019-10-04 20:32:38 · 259 阅读 · 0 评论 -
计蒜客- BE, GE or NE 博弈论+记忆化搜索
题意:一个游戏根据途中不同的选择,对最终的分数有不同的影响,根据最终分数有三种结局:gd,bd,nd。现K和S一起玩这个游戏,K希望gd,S希望bd。有n次选择,每次选择可能有a,b,c三个选项,选择a,则分数+a,a=0代表没有a选项。选择b,则分数-b,b=0代表没有b选项。选择c,则分数*(-1),c=0代表没有c选项。他们轮流做选择,K先选。如果不能达到自己想要的结局,就尽量争取nd结局。...原创 2019-08-30 23:00:36 · 281 阅读 · 0 评论 -
牛客多校第9场 Knapsack Cryptosystem(折半查找)
题意:思路:折半搜索,这道题爆搜复杂度2^n,当n为36时肯定会tle,但折半搜索可以将复杂度降低到2*2^n,还是可以接受的。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 45;ll n, s, a[N];map<ll, int> mp;vo...原创 2019-08-16 16:23:09 · 176 阅读 · 0 评论 -
2019牛客暑期多校训练营(第十场)B Coffee Chicken(递归搜索)
题意:给出字符串S1,S2S_1,S_2S1,S2且Sn=Sn−2+Sn−1S_n = S_n-2 + S_n-1Sn=Sn−2+Sn−1,求第nnn个字符串从第kkk位开始的后10个字符串。其中n<=500,k<min(∣s∣,1012))n <= 500, k < min( |s|, 10^{12}))n<=500,k&l...原创 2019-08-18 23:05:06 · 181 阅读 · 0 评论 -
7-42 愿天下有情人都是失散多年的兄妹 (25 分)
呵呵,这道破题,坑点在父母也算。。。性别也要比较#include<bits/stdc++.h>#define fi first#define se second#define INF 0x3f3f3f3f#define ll long long#define ld long double#define mem(ar,num) memset(ar,num,sizeof(...原创 2019-03-27 11:25:19 · 712 阅读 · 0 评论 -
消灭复读机
题目描述手机端QQ推出了贴表情的新功能,复读机势力再次猖狂起来,她们把表情贴的到处都是!裙主决定把被复读次数最多的表情从聊天记录中删去。聊天框是一个大小为n x m的黑白点阵。背景色是白色。我们定义“表情”是由黑色色块组成的极大四连通块。你的任务是找出聊天框中出现次数最多的表情,把这些表情都涂成白色,然后把处理好的聊天框输出出来。保证表情的大小都小于32 x 32。保证出现次...原创 2019-03-04 18:53:48 · 515 阅读 · 0 评论 -
7-13 肿瘤诊断
在诊断肿瘤疾病时,计算肿瘤体积是很重要的一环。给定病灶扫描切片中标注出的疑似肿瘤区域,请你计算肿瘤的体积。输入格式:输入第一行给出4个正整数:M、N、L、T,其中M和N是每张切片的尺寸(即每张切片是一个M×N的像素矩阵。最大分辨率是1286×128);L(≤60)是切片的张数;T是一个整数阈值(若疑似肿瘤的连通体体积小于T,则该小块忽略不计)。最后给出L张切片。每张用一个由0和1组成的...原创 2019-03-07 20:24:10 · 513 阅读 · 0 评论 -
Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 2) C
Alice lives on a flat planet that can be modeled as a square grid of size n×nn×n, with rows and columns enumerated from 11 to nn. We represent the cell at the intersection of row rr and column cc with...原创 2019-02-26 18:04:59 · 505 阅读 · 0 评论 -
堪称最好的A*算法
转自 https://blog.youkuaiyun.com/b2b160/article/details/4057781#commentBox原文地址:http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht本文版权归原作者、译者所有,我只是转贴;如果侵害到您的权益,请联系我,我将删除本文。基本上,这文章可以说是最佳A*算法...转载 2018-12-15 19:03:59 · 413 阅读 · 0 评论 -
POJ-2251 Dungeon Master
DescriptionYou are trapped in a 3D dungeon and need to find the quickest way out! The dungeon is composed of unit cubes which may or may not be filled with rock. It takes one minute to move one unit...原创 2018-10-13 15:14:43 · 188 阅读 · 0 评论 -
POJ3278 Catch That Cow
DescriptionFarmer John has been informed of the location of a fugitive cow and wants to catch her immediately. He starts at a point N (0 ≤ N ≤ 100,000) on a number line and the cow is at a point K (...原创 2018-10-13 16:26:45 · 102 阅读 · 0 评论 -
P1219 八皇后
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把...原创 2018-10-14 15:53:10 · 198 阅读 · 0 评论 -
P1019 单词接龙
题目描述单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如 beastbeast和astonishastonish,如果接成一条龙则变为beastonishbeastonish,另外相邻的两部分不能存在包含关系,例如atat 和 ati...原创 2018-10-14 18:47:13 · 275 阅读 · 0 评论 -
Gym101986 B .Parallel Lines(斜率处理+dfs)
题意:给定二维平面上N个点,N是偶数,限制让你两两连线,使得平行线对数最多。N<=16;思路:N为16时,复杂度=15*13*11*9*7*5*3*1~=2e6;所以可以枚举所有情况,即搜索可以做。 注意是两两配对,没有不选的情况,不然复杂度很高。#include <bits/stdc++.h>#define ll long longusing namespace ...原创 2019-10-06 22:25:03 · 451 阅读 · 0 评论