![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索
_Yuh_
...
展开
-
病毒溯源 (25 分)
病毒溯源题意: 给你一棵树,让你求出最长的那条链,如果不唯一,输出最小序列.思路: 直接dfs根节点,然后用path数组记录前驱节点.#include <bits/stdc++.h>using namespace std;const int N = 1e4+10;int n,k,v;vector<int>g[N];vector<int>ans;int in[N],path[N];void dfs(int u,int depth) { i原创 2021-10-15 19:36:17 · 589 阅读 · 0 评论 -
PTA-分而治之
思路:计算一下除去Np个点之后的连通分量,如果去掉的点数+此时的连通分量==n,就输出YES,否则输出NO。#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <string>#include <cstring>#include <vector>..原创 2021-03-31 15:37:36 · 353 阅读 · 0 评论 -
L - Elegant Showroom
题目链接思路:从给定的点进行bfs,搜索到位于边界上的‘D’就停止,每次取一下最小值。AC代码:#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <string>#include <cstring>#include <vector>#inc原创 2021-03-25 16:29:07 · 91 阅读 · 0 评论 -
F - Honeycomb
题目链接题意:从起点‘S’到终点‘T’经过的最少方格数,如果不能到达‘T’就输出-1。思路:从起点BFS一下,把每个六边形的中心看做一个点。蜜蜂可以向六个方向移动,分别判断一下能否到达另一个相邻的六边形并判断是否是终点。记录一下最短的路径。再总结一下做这个题遇到的一些困难:①在输入的时候花了很长时间,因为使用gets可能导致堆栈溢出覆盖之前输入的内容,这次就用了cin.getline()输入,可是之前使用的次数不多,没有深入了解过cin.getline(),使用的不是很熟练,输入的时候原创 2021-02-01 18:02:45 · 156 阅读 · 0 评论 -
棋盘游戏
题目链接这个题与八皇后问题很相似,就是从第一行开始列举出每个棋子放在每一列的情况,每次都判断一下是否在同一行或同一列或对角线上有其他的棋子。如果有的话就回溯到上一行,在另一列放下棋子,再递归,一直到n+1行,然后输出每行棋子的位置。#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#include <.原创 2021-01-23 14:59:49 · 200 阅读 · 0 评论 -
Game Map
题目链接这个题我用DFS做的,但好像也可以不用,如果用DFS的话需要用到剪枝,否则会超时。#include <iostream>#include <stdio.h>#include <stdlib.h>#include <algorithm>#include <math.h>#include <map>#include <vector>#include <cstring>#include &l原创 2020-12-07 23:53:14 · 338 阅读 · 0 评论 -
L - PC is for kicking
题目链接思路:可以BFS或DFS或者其他方法,一开始我用二维数组存储每条边,然后再DFS,但是边数太多,存不下。也没有想到好的方法,又因为不太会用vector就放弃了。后来借鉴了一下一个大佬的代码,但是我还是不知道我的为什么AC不了...BFS:(我感觉这是BFS,但是原代码是DFS)将每个点存入队列中,并且每一次while循环更新一下最大值#include <bits/stdc++.h>using namespace std;const int N=100005;vector&l原创 2020-08-08 16:36:39 · 83 阅读 · 0 评论