随笔分类 - BFS/DFS搜索
摘要:地址:https://www.acwing.com/problem/content/848/ 解析: y总先写的是一个无关重心的一个解法。即枚举每一个点,删掉它后,得出的剩余各个连通块中点数的最大值。 一:存图 邻接表,依然是熟悉的单链表,这里有多个单链表,也就是多个-1点,所以要全初始化为-1 无
        阅读全文
                
摘要:【问题描述】小蓝要用七段码数码管来表示一种特殊的文字。 上图给出了七段码数码管的一个图示,数码管中一共有 7 段可以发光的二 极管,分别标记为 a, b, c, d, e, f, g。小蓝要选择一部分二极管(至少要有一个)发光来表达字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。例如:
        阅读全文
                
摘要:Acwing地址:https://www.acwing.com/problem/content/94/ 看图: 所以就是当前的数,选与不选的问题: vis[x]=1; //选 dfs(x+1); vis[x]=0; dfs(x+1); //不选 #include<iostream> #include
        阅读全文
                
摘要:地址:https://www.dotcpp.com/oj/problem1117.html 解析: 对于K进制数,每个位置的数是0~k-1的。 首先看首位,必不能为0,那么有k-1种选法 。 定义idx,表示当前不为0的位置下标。 接下来,有两种选择,一个是第二位为0,一个是第二位不为0。 如果要第
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/contest/7831/J 题意: 一串数字,包含1~n,用空格将它们分开,输出任意一种。 解析: 本来想着,顺序看,先输出<10的,然后是>=10的,对于0特判输出两位。 但是有个样例,不行:1011987654321。输出10,1,
        阅读全文
                
摘要:地址:https://www.dotcpp.com/oj/problem1433.html 中文题意 解析: 从u->v,如果中间经过的点的被访问次数等于u->v的路线数,便是一个关键点。 具体见注释。 #include <bits/stdc++.h> using namespace std; ty
        阅读全文
                
摘要:地址:http://codeforces.com/contest/1406/problem/C 题意: 给出n个点,n-1条边。 通过删除一条边,增加一条边,使得重心唯一 重心:树的某个节点,当去掉该节点后,树的各个连通分量中,节点数最多的连通分量其节点数达到最小值。 解析: 关于重心的一个性质: 
        阅读全文
                
摘要:洛谷地址:https://www.luogu.com.cn/problem/P2066 题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个
        阅读全文
                
摘要:洛谷地址:https://www.luogu.com.cn/problem/CF448C 题意: 有n块连着的木板,每个木板的高度为h_ihi,你需要把这n块木板上色,每次 上色你可以选择竖着刷完一块木板,或者横着刷一个高度单位的连续的木板(不能中 间空着的不能跳跃),问最少需要刷几次。 解析: 
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/contest/5667/C 题意: 给定一个k个节点的无根树,求最少的链覆盖树上的所有边。并输出覆盖方式(链的两边的节点编号) 解析: 保证每一个边都有被覆盖,肯定与叶子节点有关系。 有结论: 用最少条链来覆盖一棵树的时候,最优解: (
        阅读全文
                
摘要:地址:http://poj.org/problem?id=3321 题意: 树上有n个位置,初始每个位置都有苹果。以1号为总根 n-1条分叉边 m条询问: Q:id 以id为根的子树有几个苹果 C:id id处如果有苹果,摘掉,否则放上一个苹果。 解析: 假设输入的是这么一棵树: 看数据,肯定要前缀
        阅读全文
                
摘要:A:http://codeforces.com/contest/1365/problem/A 题意: n*m的01矩阵,操作是把0变为1,条件是这个0所在的行列均无1。给出先手,求胜者。 解析: 改变一个0,那么它所在的行列均不能再使用。 设不含1的列有x,不含1的行有y,那么min(x,y)即为可
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/contest/5713/A 解析: n=10,最多是n!种不同的排列方式。 所以可以暴力枚举每一种情况:next_permutation(); id[]记录每个点的标号,对它进行全排列。d[i][j]表示i点到j点的距离,枚举所有情况。
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/problem/206047 解析: 对于整个的区间[1,n],如果有一个数只出现了一次,下标为x,那么有:[1,x,n],对于里面的任意区间,只要涉及到x,它直接就是好序列。 所以就把区间分成两部分:[1,x-1][x+1,n]。 接下
        阅读全文
                
摘要:地址:https://ac.nowcoder.com/acm/contest/5338/A 解析:直接套bfs找最短路的板子就可以了,只是这里是三维,注意一下细节就行了。刚开始不知道三维怎么读入...... #include<iostream> #include<cstdio> #include<c
        阅读全文
                
摘要:地址:http://codeup.cn/problem.php?id=5974 题目描述 已知 n 个整数b1,b2,…,bn 以及一个整数 k(k<n)。 从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。 例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合
        阅读全文
                
摘要:#include<iostream> #include<cstring> using namespace std; const int maxn=1e3; int vis[maxn]; int p[maxn]; int n; int t=0; void dfs(int x) { if(x==n+1)
        阅读全文
                
摘要:和ACWING 844基本一样。但是这里要输出路径 我的做法是,pair一个ing[x][y],ing[x][y].first,ing[x][y].second记录x,y的前一个点。因为是逆序,所以又存进一个结构体里,再逆序输出,才变成正序了。 #include<iostream> #include
        阅读全文
                
摘要:地址:https://www.acwing.com/problem/content/846/ 走迷宫,从左上角走到右下角,0可走,1不可走,问最少需要几步。 BFS解法: 通过g[][]记录地图,d[][]初始化为-1用来保证一个点只能走一次以及记录每个点到达终点的距离。 注意:使用以下语句来实现队
        阅读全文
                
摘要:ACWING板子题地址:https://www.acwing.com/problem/content/description/845/ 题中已经说的很清楚了,什么叫n皇后。对于一个棋子的摆放,我们应该保证这个棋子所在位置的一列,斜方向和反斜方向没有棋子。怎么判断呢,我们引入bool类型的row[]数
        阅读全文
                

 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号