
深度优先搜索(dfs)
Nowed
把泪水种在心上,一定会开出勇敢的花。
展开
-
Poj 3074 Sudoku 和 Poj 1011 Sticks
【代码】Poj 3074 Sudoku 和 Poj 1011 Sticks。原创 2023-10-21 16:43:07 · 186 阅读 · 0 评论 -
#状压DP/迭代加深# [luogu P3052] [USACO12MAR]Cows in a Skyscraper G
TitleP3052 [USACO12MAR]Cows in a Skyscraper GSolution注意题意,输出的是最小分组数,一定要快速准确地理解题意!!!设a[i]a[i]a[i]为iii状态下最少的分组数b[i]b[i]b[i]表示iii状态下最后一组中的最大剩余空间。当然也可以选择练一下dfsdfsdfs的迭代加深,大体就是主程序枚举车厢,然后dfsdfsdfs尝试是否可行。Code(状压)#include<cstdio> #include<cstr原创 2020-10-13 21:59:04 · 155 阅读 · 0 评论 -
#斐波那契# [jzoj 3769] 【NOI2015模拟8.14】A+B
题目Description对于每个数字x,我们总可以把它表示成一些斐波拉切数字之和,比如8 = 5 + 3, 而22 = 21 + 1,因此我们可以写成 x = a1 * Fib1 + a2 * Fib2 + a3 * Fib3 + … + an * Fibn, 其中,Fib1 = 1, Fib2 = 2…. Fib[i] = Fib[i – 1] + Fib[I - 2], 且a[n]...原创 2019-12-22 14:47:54 · 193 阅读 · 0 评论 -
#dfs,二分图#[jzoj 3846]七天使的通讯
题目n个天使排成一条直线,某些天使之间需要互相联系,他们之间的通讯可以通过黑白两种通道中的一种;所有通道必须在直线同侧(另一侧是地面);为了保证通讯效率,同种颜色的所有通道之间不能相交。请计算能否建立这种通讯方案。解题思路将每个通道设为一个节点,先暴力判断每两条通道如果是同种颜色会不会相交,如果会相交就在这两个节点之间连无向边,说明它们不能为同种颜色(必须在二分图两边)。然后对组成的...原创 2019-11-07 16:18:41 · 136 阅读 · 0 评论 -
[jzoj 2928] 游戏{dfs}
题目Description Bob经常与Alice一起玩游戏。今天,他们在一棵树上玩游戏。Alice有M1块石子,Bob有M2块石子,游戏一开始,所有石头放在树的节点处,除了树根。Alice先移然后两人轮流移动,每次移动只能选择自己的一个石子,而且只能从当前位置移到父亲节点处,游戏过程中允许一个节点处放多个石子。 谁先把自己所有的石子移到树根处谁就失败了,假设两人都是非常聪明,游戏过程中...原创 2019-11-04 19:24:02 · 230 阅读 · 0 评论 -
[51nod] 猴猴吃苹果 {dfs}
题目猴猴最喜欢在树上玩耍,一天猴猴又跳上了一棵树,这棵树有N个苹果,每个苹果有一个编号,分别为0~N-1,它们之间由N-1个树枝相连,猴猴可以从树枝的一端爬到树枝的另一端,所以猴猴可以从任意一个苹果的位置出发爬到任意猴猴想去的苹果的位置。猴猴开始在编号为K的苹果的位置,并且把这个苹果吃了,之后每一天猴猴都要去吃一个苹果,但是树上那么多苹果吃哪个呢?猴猴想到自己去吃苹果时一定会把路上遇到的苹果都吃...原创 2019-11-03 12:03:02 · 475 阅读 · 0 评论 -
[洛谷5194] [USACO05DEC]Scales 天平 {折半搜索}
题目1252https://www.luogu.org/problemnew/show/P5194解题思路因为直接搜索会明显超时。所以我们可以从中间断开,然后分成两半搜索,对于搜到的sum2数组排序(从小到大)。然后我们可以枚举前面,然后二分查找后面严格大于等于m-a[i]的数,答案即a[i]+b[i]代码#include&lt;cstdio&gt;#include&lt;algo...原创 2019-01-26 17:40:34 · 518 阅读 · 0 评论 -
[jzoj 4246] 【五校联考6day2】san {spfa+dfs/spfa+拓扑排序+dp}
题目Description小明经常去N 个地点,其中有些地点之间有直接的无向道路(共M 条这样的道路),可以直接互相到达,这些道路的长短不一。由于小明对这些道路都很熟悉,无论起点和终点在哪里,总能走最短路。小明有严重的强迫症,认为奇数很不和谐,如果他某一天从一个地点去另一个地点走过的路程是奇数,就会很不爽,但他又不想白白多走路,所以遇到最短路长度是奇数的情况就只能忍了。如果从某个地点A 到另...原创 2019-01-29 14:55:27 · 501 阅读 · 2 评论 -
[jzoj 4252] 【五校联考7day2】QYQ的图 {dfs+剪枝}
题目Description给你一个n个点,m条边的无向图,每个点有一个非负的权值ci,现在你需要选择一些点,使得每一个点都满足:如果这个点没有被选择,则与它有边相连的所有点都必须被选择。问:满足上述条件的点集中,所有选择的点的权值和最小是多少?QYQ很快就解决了这个问题,但是他已经回到了左下角……没有留下答案,现在只好请你来解决这个问题啦!Input从文件graph.in中输入数据。...原创 2019-01-30 16:31:42 · 368 阅读 · 0 评论 -
[luogu2420] 让我们异或吧 {dfs+异或}
题目https://www.luogu.org/problemnew/show/P1351解题思路这道题目最纯粹的思路应该是求x,y的lca,然后累计异或和.{\color{Purple} 这道题目最纯粹的思路应该是求x,y的lca,然后累计异或和.}这道题目最纯粹的思路应该是求x,y的lca,然后累计异或和.需要知道一个关于xorxorxor的知识:x⊕y⊕y=x⊕(y⊕y)x \op...原创 2019-03-16 10:24:22 · 194 阅读 · 0 评论 -
[nssl1320][jzoj cz 2108] 买装备 {dfs}
题目mxy 沉迷于一个辣鸡游戏不可自拔。为了加强角色的实力,mxy 决定重新买一套装备。已知现在有 n 件装备,每件装备会ᨀ供一定的物理抗性和魔法抗性,并需要一定的价钱。mxy 想要保证至少有 a 的物抗和 b的魔抗,请你计算出满足条件所需的最少金额。(装备不可重复购买)输入第一行两个整数 a,b 表示最少需要的物抗和魔抗。(1≤a≤21,1≤b≤79)第二行为整数 n (1≤n≤2...原创 2019-05-14 18:34:35 · 275 阅读 · 0 评论 -
[nssl132][jzoj cz 2106] 买门票 {dfs}
题目代码#include<cstdio>#include<algorithm>#include<cstring>#define rep(i,x,y) for (register int i=x;i<=y;++i)using namespace std; int l,n,a[30],ci; bool x[30]; void dfs(int ...原创 2019-05-14 18:35:17 · 326 阅读 · 0 评论 -
nssl1323,jzoj(初中)2107-交流【dfs,容斥,组合数】
题目解题思路代码#include<cstdio> #include<algorithm>#incude<cstring>#define rep(i,x,y) for(register int i=x;i<=y;++i)using namespace std; const int L=55,WYC=1000003; int m,k,l,...原创 2019-05-15 18:36:13 · 170 阅读 · 0 评论 -
[jzoj 1764] 游戏 {dfs+杨辉三角形}
题目Description xc抽空光顾了lp的饲养场,在一大堆赞美语之后和lp玩起了一个游戏—— 一个完整的倒三角有n层,第一层有n个数字,为原始数字,接下来每层都比上一层减少1个数字,并有f[i,j]=f[i-1,j]+f[i-1,j+1] ,如 3 1 2 4 4 3 6 7 9 16 由xc给出f[n,1],和一个限制max(0&...原创 2019-05-21 18:33:52 · 180 阅读 · 0 评论 -
jzoj 4805. 【NOIP2016提高A组模拟9.28】跟踪 {树+dfs}
题目解题思路不难发现,⽯神和两个陌⽣⼈的⾏动⽅式⼀定是最优策略。转换⼀下思路,考虑对于每个点,⽯神是否能⽐两个陌⽣⼈先到达。计算⽯神到达每个点的最早时间,以及两个陌⽣⼈到达每个点的最早时间。然后对于每个点依次判断是不是可能是最终被追上的位置即可,最迟时间也可以⽅便求得。代码#include<cstdio>#include<algorithm>...原创 2019-06-06 17:05:53 · 199 阅读 · 0 评论 -
[jzoj 4208]【五校联考1day1】线段树什么的最讨厌了 {dfs}
题目Description小Y 最近学习了线段树,但是由于她的智商比较低,运用的还不是很熟练。于是小R 给了她一点练习题训练,其中有一道是这样的。这是小R 写的线段树的一段建树代码:只要调用buildtree(1,0,n) 就可以得到一颗线段树了。显然,一颗线段树一共有O(n) 个节点,因为每一个节点都代表了一个不同的区间,所以线段树上一共出现了O(n) 个不同的区间。现在小R 给了你...原创 2019-01-21 17:06:52 · 245 阅读 · 0 评论 -
[jzoj 2894][洛谷3365] 改造二叉树{最长不下降序列(n log n)+dfs+二分}
题目https://www.luogu.org/problemnew/show/P3365解题思路因为近几天做了一道平衡树的题目,二叉查找树是满足中序遍历(BST性质),严格满足递增。所以想到了LIS(最长上升序列),(即n-LIS是最少修改的值),但是因为题目中修改的必须是整数。 所以无法这样做,我们可以将这样的序列映射成另一个序列:a[1]−1,a[2]−2,a[3]−3........原创 2019-01-25 20:16:16 · 287 阅读 · 0 评论 -
[jzoj 2941] 贿赂 {数学期望+dfs}
题目议会里有N个议员,每个议员有两个属性:级别和忠诚值。现在你要在议会通过一个议案,一个议案通过当且仅当严格超过一半的议员投赞同票。一个议员投赞同票的几率就是忠诚值除以100。议员们有着奇怪的癖好:他们都喜欢吃糖。你带了K个糖果用来贿赂议员,每个糖果的作用是使得某个议员的忠诚值增加10。贿赂要在投票开始前完成。(注意任意议员的忠诚值不可能大于100)投票之后,如果议案没有通过,你就会很暴力地...原创 2019-01-19 16:38:31 · 295 阅读 · 0 评论 -
【普及组模拟赛】家族(family.pas/cpp)//2018.1.26
题目大意在一个岛屿,只要上下左右相邻的字母既是一个家族,求家族数。【数据范围】 10%的数据, n30%的数据, n100% 的数据, n解题思路 与细胞问题差不多,广搜可以换深搜。代码#include#include#includeusing namespace std;int n,mm[201],maa;bool b[101原创 2018-01-26 19:27:32 · 388 阅读 · 0 评论 -
【2014.8.17NOIP普及组模拟】数池塘//2018.2.3
题目题目描述 农夫约翰的农场可以表示成N*M(1 现给出约翰农场的图样,要求输出农场上的池塘数。 输入第1行:由空格隔开的两个整数:N和M第2..N+1行:每行M个字符代表约翰农场的一排方格的状态。每个字符或者是’W’或者是’.’,字符之间没有空格。输出 第1行:约翰农场上的池塘数题目大意农场上有“W”“.”的状态,相连的“W”原创 2018-02-04 12:03:06 · 674 阅读 · 0 评论 -
【2014.10.18普及组】反射(mirror.pas/cpp/c) //2018.1.27
题目题目描述 农夫约翰把他的很多镜子遗落在房子外面,他的奶牛们对这些镜子很好奇,于是奶牛们把这些镜子偷了! 奶牛们把镜子放在了一个N*M的矩阵中,在每个小方格中,他们将镜子按正对角线或者反对角线的方式放置,也就是说镜子的放置形状要么是’/’,要么是’\’。 某一天晚上,奶牛贝里斯拿着一个手电筒站在矩阵的外面,他打开手电筒按水平或者垂直方向朝矩阵内的镜子照射,原创 2018-01-28 18:52:36 · 320 阅读 · 0 评论 -
【2014.10.18普及组】密码编码(scode.pas/cpp/c) //2018.1.27
题目题目描述农夫约翰最近想发一些秘密的信息,但是他不想让奶牛们知道。这些信息是‘A’到’Z’的字符组成的,长度至少是2。为了对这些信息进行加密,农夫约翰对这些信息进行了一系列的操作,每次操作,约翰把字符串S去掉从第一个开始连续的若干个字符或者从最后一个字符开始连续若干个字符(至少去掉一个字符,也不能全部去掉),然后把剩余的字符串添加到原来S串的左边或者右边。例如,对于字符串ABC,一次操原创 2018-01-29 07:59:24 · 407 阅读 · 0 评论 -
方程的解数
题目DescriptionInput 第1行包含一个整数n。第2行包含一个整数M。第3行到第n+2行,每行包含两个整数,分别表示ki和pi。两个整数之间用一个空格隔开。第3行的数据对应i=1,第n+2行的数据对应i=n。Output仅一行,包含一个整数,表示方程的整数解的个数。Sample Input3 150 1 2 -1 2 1 2Sam...原创 2018-03-08 21:06:30 · 709 阅读 · 0 评论 -
2016普级组模拟试题 Closest
题目Description考虑两个n位的十进制正整数A和B,都没有前导0。我们需要找到两个最近的靠近A的n位数(第一个比A大或与A相等,第二个严格比A小),使得它们的十进制表示是B中所有数字的某个排列。 比如说,假如A=3022并且B=1232,用B的数字我们可以获得以下的4位数字:1223, 1232, 1322, 2123, 2132, 2213, 2231, 2312, 23...原创 2018-03-17 15:18:26 · 195 阅读 · 0 评论 -
2016普级组模拟题 求和
题目解题思路 用等差数列算出一个ans的值,然后枚举1到ii,存储一个等于(ans-n)/2的方案数,输出……代码#include<cstdio>using namespace std; int n,tg,ii,len,a[100001]; bool flag; void dff(int x,int y)//深搜方案{ if (x...原创 2018-03-24 15:53:48 · 219 阅读 · 0 评论 -
2014年初中竞赛试题(南海) 树
题目解题思路 正解:深度优先搜索+树状数组/线段树 歪解:递归+一个类似于线段树的思想代码【歪解】#include&lt;cstdio&gt;using namespace std; int n,m,wt,w[100001],fa[100001],li[100001]; int u,v;//li记录i节点要"加"的值(但并不加,在递归时才带着走)...原创 2018-04-07 16:35:19 · 331 阅读 · 0 评论 -
2009年南海初中竞赛 比萨
题目解题思路 深度优先搜索。代码#include<cstdio>#include<cstring>using namespace std; int n,t,ans; bool tg[101]; struct node{ int len; bool b[101]; }a[101];bool ok(int lgg)//这...原创 2018-03-31 15:25:25 · 295 阅读 · 0 评论 -
2003年南海初中 取数
题目解题思路 深度优先搜索+一些剪枝 正解:记忆化搜索代码#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;#define max(a,b) a&amp;gt;b?a:b#define file(x) freopen(#x&quot;.in&quot;,&q原创 2018-05-19 14:50:47 · 353 阅读 · 0 评论 -
[poj 3764][luogu 4551] The xor-longest Path{Trie字典树+dfs}
题目http://poj.org/problem?id=3764解题思路设d[x]d[x]d[x]表示根节点到x的路径上所有边权的xorxorxor值,有:d[x]=d[father(x)]xorweight(x,father(x))d[x]=d[father(x)]xorweight(x,father(x))d[x]=d[father(x)] xor weight(x,fathe...原创 2018-08-17 20:00:48 · 201 阅读 · 0 评论 -
[jzoj 5771] 遨游 {嵌套二分+dfs}
文章目录题目DescriptionInputOutput解题思路代码题目DescriptionMWH寒假外出旅游,来到了S国。S国划分为N个省,第i个省有Ti座城市,编号分别为Ci1,Ci2,……CiTi(各省城市编号不会重复)。所有城市间有M条双向的道路连接,从任意一个城市出发,可到达一切城市,每条道路均须收费。此时恰逢春运期间,S国交通运输局采取了优惠措施。当一条路的路费在[L…R]区...原创 2018-09-22 16:52:31 · 248 阅读 · 0 评论 -
[luogu 5018][2018noip普及组] 对称二叉树 {dfs/树上莫队/}
题目https://www.luogu.org/problemnew/show/P5018解题思路这道题既可以用树上莫队做O(n)O(n)O(n),也可以用hash做&amp;nbsp;O(nlogn)hash做\ O(n log n)hash做&amp;nbsp;O(nlogn)但是因为数据的问题,dfsdfsdfs也能过。时间复杂度——O(能过)O(能过)O(能过)代码#include&amp;lt;...原创 2018-11-22 17:22:12 · 540 阅读 · 0 评论 -
[jzoj 5223] 【GDOI2018模拟7.12】B {矩阵乘法+dfs}
题目Description给定一个3*3的网格图,一开始每个格子上都站着一个机器人。每一步机器人可以走到相邻格子或留在原地,同一个格子上可以有多个机器人。问走n步后,有多少种走法,满足每个格子上都有机器人。答案对10^9+7取模。InputOutput解题思路从左到右,从上到下,分别标识为1到9设f[i][j]f[i][j]f[i][j]表示从i处走到j处的方案数。然后可以矩阵...原创 2018-12-08 17:07:35 · 306 阅读 · 0 评论 -
jzoj.1591【普及模拟】游戏(j5.pas/cpp) //2018.2.1
题目题目描述两个核武器科学家Patrick和Roland,在研究核武器时突然觉得无聊,玩起了游戏,游戏当然也是跟核武器有关,游戏一开始在桌子上放了一些核材料,两个人轮流玩,Patrick先玩。游戏规则是每次玩家可以从这些核材料里选一些材料放到反应堆去,当然结果就是化为乌有,由于游戏太危险,所以只有A,B,C,D四种材料,而且允许的反应只有以下5种:AABDDABCDCCDBBB原创 2018-02-01 19:49:51 · 215 阅读 · 0 评论