dfs
.
小菜鸡加油
菜鸡
什么都能折磨
展开
-
二叉树相关编程面试题
相关题目写博客记录不同做法,毕竟面试是提要求的不是直接ac就可以的。如果是面试,先问问面试官结构是哪一种。236. 二叉树的最近公共祖先带有parent的三叉链结构->转换成了链表相交如果要求空间复杂度为O(1)的话,就要模仿链表相交找到两个节点的高度差,然后两者到同一高度都往上走。搜索二叉树结构可以发现这样的性质:如果子节点的值一个比根大一个比根小,那么当前根就是最近公共祖先,不然就可以往左走或者往右走,从而变成递归解决子问题。普通二叉树思路一:仿照搜索二叉树的情况原创 2022-01-23 22:58:09 · 318 阅读 · 0 评论 -
B. Two Fairs(思维)
https://codeforces.com/problemset/problem/1276/B思路:类似桥的概念吧。a-b之间的点无法到达,a左边的一大块和b右边的一大块是都可以的,两两组合相乘。直接去求a-b之间的点全部打上标记有点麻烦。可以转化一下,从a开跑,到b的就结束,统统打1,从b开跑,到a的就结束,统统打2,这样最后on扫的时候就可以直接消去a-b中间的点了。#include<iostream>#include<vector>#include&原创 2021-04-12 14:38:00 · 178 阅读 · 0 评论 -
448C - Painting Fence(思维+分治)
https://codeforces.com/problemset/problem/448/C思路:对于一段区间,一个上界代价就是其长度。然后就是横涂到最小的高度就产生了分段。对于这些分段采取同样的方法进行处理。也就是说,对于这个区间,我最后是竖着全部涂完,还是横着配合怎么样,我dfs进入更小的区间得到最优解再返回回来,根据该返回结果的汇总取一个最小再返回去。#include<iostream>#include<vector>#include<queue>原创 2021-03-31 21:51:11 · 247 阅读 · 0 评论 -
A. Anadi and Domino(思维+dfs)
https://codeforces.com/problemset/problem/1210/A思路:n只有7,暴搜。想着建图暴搜,但是会导致不连通有点不好处理。于是对所有点直接全排列点数(7!),然后满了之后就check一次就好#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map&原创 2021-03-18 15:19:08 · 116 阅读 · 0 评论 -
C. Creative Snap(dfs+剪枝)
https://codeforces.com/problemset/problem/1111/C思路:直接暴搜是2^30肯定不行呀..但是看这个k只有1e5,均分构造也跑不到太大。所以log找一段区间里的人是否为0,为0就可以直接return了#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#includ原创 2021-03-11 21:50:43 · 152 阅读 · 0 评论 -
C. Permute Digits(思维+dfs)
https://codeforces.com/problemset/problem/915/C思路:转数位0~9暴搜#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include&.原创 2021-03-06 12:20:04 · 142 阅读 · 0 评论 -
B. Nastya and Scoreboard(思维+记忆化搜索)
https://codeforces.com/problemset/problem/1340/B思路:dp的话状态可能不是很好想。但是dfs是比较直观的。两个状态,一个当前在哪个串,另一个是当前剩下的开关次数。然后剪一个比较重要的枝,st[pos][k],遍历了该pos的剩余k次的所有状态之后返回还是不成立,那么就将这个状态记忆下来剪枝。另外一个优化就是数位贪心。高位先枚举#include<iostream>#include<vector>#include<原创 2021-02-16 22:25:40 · 158 阅读 · 0 评论 -
Xenia and Weights(dfs/dp)
https://codeforces.com/problemset/problem/339/C思路:看着确实可以dfs一波,但是这个dfs的复杂度是多少呢...翻了一下网上的其他题解都找到说这个事的。如果有老哥懂大致的复杂度可以评论区指点一下我#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include&原创 2021-02-14 22:51:10 · 85 阅读 · 0 评论 -
N皇后问题
在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Inp...原创 2020-01-12 15:32:40 · 266 阅读 · 0 评论 -
A - 棋盘问题 POJ - 1321
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <=...原创 2020-01-12 13:11:59 · 130 阅读 · 0 评论 -
全排列问题
1404: 深入浅出学算法099-全排列问题时间限制: 5 Sec 内存限制: 128 MB提交: 75 解决: 24[提交] [状态] [讨论版] [命题人:admin]题目描述输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入n(1≤n≤9)输出由1~n组成的所有不重复的数字序列,每行一个序列。 要求每个数占5列,且按照前面的数...原创 2020-01-12 10:41:21 · 1330 阅读 · 2 评论 -
最大利润
https://vjudge.net/problem/Aizu-ALDS1_1_D你可以从外汇保证金交易中获得利润。例如,如果您以 100 日元兑 1 美元的利率买入 1000 美元,然后以 108 日元兑 1 美元的价格出售,您可以获得 (108 - 100) = 1000 = 8000 日元。编写读取货币值的程序RtRt在某一时间tt (t=0,1,2,…n−1t=0,1,2,…n−1)...原创 2020-01-11 11:30:46 · 523 阅读 · 0 评论 -
复习(1.13)
重写棋盘#include<stdio.h>#include<string.h>char a[100][100];int b[100];int ans,n,k; ////局部的循环变量就不要放在全局变量的地方了 void dfs(int t,int y) int i,j; if(y>=k) { ans++; ...原创 2020-01-13 16:18:19 · 147 阅读 · 0 评论 -
1.20棋盘复习(当作个人复习)
最近心态很崩,自己脑子不够用再加上自己笨,感觉啥都学不好,排位赛打得好像10天没有学过一样棋盘复习在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开...原创 2020-01-20 22:23:19 · 139 阅读 · 0 评论 -
D - Cyclic Components
CodeForces - 977EYou are given an undirected graph consisting ofnnvertices andmmedges. Your task is to find the number of connected components which are cycles.Here are some definitions of graph theory.An undirected graph consists of two sets: se...原创 2020-08-06 18:44:28 · 169 阅读 · 0 评论 -
P2858 [USACO06FEB]TREATS FOR THE COWS G/S
https://www.luogu.com.cn/problem/P2858题目描述FJ has purchased N (1 <= N <= 2000) yummy treats for the cows who get money for giving vast amounts of milk. FJ sells one treat per day and wants to maximize the money he receives over a given period time原创 2020-07-26 20:14:39 · 237 阅读 · 0 评论 -
树形dp(dfs求法详解以及证明)(例题:共同抗疫)
更好的观看体验:http://www.yyycode.cn/index.php/2020/04/07/b-%e9%bd%90%e5%bf%83%e6%8a%97%e7%96%ab/因为做之前不知道树形dp,所以这道题当时自己的想法只有floyd,骗了48分。这里附上floyd的超时代码说下自己当时写了这代码但是debug好久,原因时这是个无向图,需要两边建边,只有一边肯定是出...原创 2020-04-07 15:11:48 · 439 阅读 · 0 评论 -
HDU1548 dfs解法
There is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <= Ki <= N) on every floor.The lift have just two buttons: up and down.When you at floor i,if...原创 2020-01-20 23:39:22 · 205 阅读 · 0 评论