【2021四川省赛】E.Don‘t Really Like How The Story Ends 图论
2021四川省赛E
Don’t Really Like How The Story Ends
题目大意
给图加边,使得一个可能的DFS序列刚好是从1到n
Time : 1000 ms
Memory: 262144 kB
解题思路及分析
第一次打正式比赛,场上E因为自己的nt行为T了好几发,这个是赛后补题
直接搜索,但是需要有一定条件
如果想要DFS序列刚好为从1到N,需要满足的条件:
- 如果 v v v与 v + 1 v+1 v+1直接相连,则访问搜索 v + 1 v+1 v+1
- 如果 v v v点存在没有访问的相邻节点且 v v v点不与 v + 1 v+1 v+1点相连,此时必须将 v + 1 v+1 v+1连接到 v v v上
- 如果 v v v点所有相邻节点都被访问了, v + 1 v+1 v+1可以与 v v v相连,也可以和从 1 1 1=> v v v中路径上的任意一点相连,路径上的点都在递归栈里面,此时可以让 v v v点退栈,一直回到某个满足条件 1 1 1或 2 2 2的节点
- 如果第3点的点退栈一直到起点1号点都没有直接相连,说明存在不连通部分,此时必须加边,此时再去搜索不连通的部分,一直到全部搜索完
AC代码
#include <bits/stdc++.h>
typedef long long llong;
const int N = 1e5 + 5;
using namespace std;
vector<int> mp[N];
bool vis[N];
int cnt;
int n, m, nxt;void dfs(int u) {nxt++;for (int i = 0; i < mp[u].size(); i++) {int to = mp[u][i];if (vis[to]) continue;if (to == nxt) { // [1]vis[nxt] = true;dfs(nxt);} else { // [2]cnt++;vis[nxt] = true;dfs(nxt);i--;} }if (u == 1) { // [3] [4]while (nxt <= n) {vis[nxt] = true;dfs(nxt);cnt++;}}
}int main() {ios::sync_with_stdio(false);cin.tie(0);int T; cin >> T;while (T--) {cin >> n >> m;for (int i = 1; i <= n; i++) {mp[i].clear();vis[i] = false;}nxt = 1;cnt = 0;for (int i = 0; i < m; i++) {int u, v;cin >> u >> v;if (u < v) mp[u].push_back(v);if (u > v) mp[v].push_back(u); // 一个小优化,只由编号小的节点连接到编号大的节点}for (int i = 1; i <= n; i++) {sort(mp[i].begin(), mp[i].end()); // 这里进行排序,就可以保证每次访问的节点都是最小的,方便判断刚刚解题思路中说的条件// 不要用堆,亲测会T(场上nt的我)}vis[1] = true;dfs(1);cout << cnt << endl;}return 0;
}
【2021四川省赛】E.Don‘t Really Like How The Story Ends 图论相关推荐
- 2021四川省赛A,B,D,H,K
2021 年第十三届四川省 ACM-ICPC 大学生程序设计竞赛(重现赛) A.Chuanpai B.Hotpot D.Rock Paper Scissors H.Nihongo wa Muzukas ...
- 2018华迪杯计算机设计大赛,华迪杯第14届中国大学生计算机设计大赛四川省赛在吉利学院成功举办_四川在线...
5月15日至16日,由四川省教育厅.中国大学生计算机设计大赛四川省赛组委会主办,四川省高等院校计算机基础教育研究会.吉利学院承办的2021年四川省大学生计算机设计大赛暨"华迪杯"第 ...
- [SWPUCTF 2021 新生赛]第一波放题(nssctf刷题)
[SWPUCTF 2021 新生赛]jicao json_decode介绍: json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_d ...
- [SWPUCTF 2021 新生赛]easyrce
打开题以后发现这个界面,需要构造url的值,然后就想起来看一下目录 ?url=system("ls /");注意:ls后面要有一个空格,然后一个分号结束,这不就出来了flag 1: ...
- [SWPUCTF 2021 新生赛]babyrce
打开界面看见if选项admin=1果断想到用burp抓包然后cookie给admin=1,获取下一步指令 然后url访问, <?php error_reporting(0); highligh ...
- 2021美赛Latex排版美化 完整代码2
今天是2月2号,还有三天就打美赛了,我在2021美赛Latex排版美化 完整代码1的基础上又做了一些补充,希望可以帮助到大家. 文章目录 一.2021美赛新要求 二.带颜色的表格 三.公式 四.目录超 ...
- 2021美赛Latex排版美化 完整代码1
2021美赛Latex排版 还有两周就打美赛啦!!!这次小组准备用Latex排版,毕竟比word用得舒坦~ 下面是官网下载的MCM-ICM_2021_Summary: %%%%%%%%%%%%%%%% ...
- 2021美赛D题思路
2021美赛D题翻译和思路 团队为建模国一获得者,有丰富建模经验,因为需保证建模思路的完整性,更新较慢,怕被D.新号. D题翻译 D题思路 问题一:使用Impact_data数据集或其中的一部分来创建 ...
- 2021电赛题目预测
前两天刚写完一篇文章关于电赛各方向所需元器件的建议,结果我还没发表官方的文档就出来了! 造成我写的那篇文章没有发布,所以我想着重新给大家写一篇文章,来根据这次官方给出的元器件进行判断一下今年的题大致可 ...
最新文章
- 计算机系统的指令系统,计算机指令系统指的是什么呢?
- Magento 1.9.2 Unknown cipher in list: TLSv1
- (转)TweenMax动画库学习(四)
- 初学shell,今天遇到由wget下载到本地的网页源代码的乱码问题,无聊的写了一个转码的脚本...
- 数据库学习一站式入门资料(纯干货)
- 凯撒/摩斯/栅栏/维吉尼亚/元音密码加解密的Python实现
- c#一个项目同时兼容浩辰cad和AutoCad
- springboot下使用拦截器和过滤器
- 安川工业机器人实训心得_安川MOTOMAN工业机器人编程与操作(3)
- 戴尔服务器找不到启动项,一个可以解决戴尔笔记本重装系统找不到引导或硬盘启动项方法...
- 京东已删除订单恢复方法
- java string 几个字节_java中字符串占几个字节
- 【计算机网络】计网学习——总览(超多图+超详解)
- android数据库工具 SQLiteSpy下载 sharePlus.Sqlite下载 DB.Browser.for.SQLite下载
- “湖南索御文化传媒”新闻发布会即将启动
- Cadence OrCAD Capture按页码自动编号的方法图文教程及视频演示
- 社区投稿 | DBLE 自定义拆分算法
- 记一次解决Intel 9462无线网卡的笔记本安装Ubuntu16.04后无法连接WIFI问题的艰难历程
- jq获取页面高度_jquery常见获取高度
- 什么是RSA国产数字证书?