NOIp 2018 D2T1 旅行//未完成
这个题没有认真读的话就会写下以下的DD代码
#include<bits/stdc++.h>
#define N 5010
using namespace std;
int n,m;
int ans[N],actr;
int head[N],ectr;
bool vis[N];
struct Edge{
int from,to,nxt;
}edge[N<<];
void addedge(int from,int to){
ectr++;
edge[ectr].from=from;
edge[ectr].to=to;
edge[ectr].nxt=head[from];
head[from]=ectr;
}
priority_queue<Edge> q;
bool operator < (Edge a,Edge b){
if(a.to != b.to) return a.to > b.to;
else return a.from>b.from;
}
int main()
{
cin>>n>>m;
for(int i=;i<=m;i++)
{
int tra1,tra2;
scanf("%d%d",&tra1,&tra2);
addedge(tra1,tra2);
addedge(tra2,tra1);
}
q.push(Edge{,,});
while (actr!=n)
{
Edge xxx=q.top();
q.pop();
if(vis[xxx.to]) continue;
vis[xxx.to]=true;
ans[++actr]=xxx.to;
for(int i=head[xxx.to];i;i=edge[i].nxt)
q.push(edge[i]);
}
for(int i=;i<=actr;i++)
cout<<ans[i]<<" ";
return ;
}
用单调队列维护一个边队列 然后不断从里面抓出来没有被更新的点 看上去好像很对
实际上换个题它就是对的 但是这不是换的那个题
题中说只有两种走法 一种是从当前走向一个没走过的点 另一种是从走过的回退到走过的
那就意味着 如果你回退了一步 你不能再走到一个你已经走过的点了
这就是为什么单调队列不能用的原因(而且什么玄学下标也救不了)
正解是基环树上的dfs找环断边(logn) 然后树上跑一遍dfs(n)
总复杂度为O(n*logn)
但实际上你不用找环也行 因为这题n2也能过(哈哈哈哈哈哈哈哈哈哈哈哈)
直接暴力短边VANS
但是该学的算法还是要学的 要去做那个数据加强版的
这里埋个坑 以后回来写掉
TAG:SIN_XIII ⑨
NOIp 2018 D2T1 旅行//未完成的更多相关文章
- noip 2018 d2t1 旅行
noip 2018 d2t1 旅行 (题目来自洛谷) 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路 ...
- [OI]Noip 2018总结(普及)
考砸了,还有原谅我代码十分有限的可读性. 一个人的真正伟大之处就在于他能够认识到自己的渺小.——保罗 从一年前初一九月到现在18年10月接触OI已经有一年了.几次模拟赛也自我感觉良好,都过了一等的线, ...
- noip 2018 D1T3 赛道修建
noip 2018 D1T3 赛道修建 首先考虑二分答案,这时需要的就是对于一个长度求出能在树中选出来的最多的路径条数.考虑到一条路径是由一条向上的路径与一条向下的路径构成,或者仅仅是向上或向下的路径 ...
- [NOIP2018 TG D2T1]旅行
题目大意:$NOIP\;TG\;D2T1$ 题解:一棵树的很简单,第一个点一定是$1$,只需要对每个节点,找最小的没有访问过的节点访问即可,我写的是$O(n\log_2n)$. 考虑基环树的部分,一个 ...
- NOIP 2018 总结
NOIP 2018 总结 提高组: 应得分 \(100 + 100 + 40 + 100 + 50 + 44 = 434\). 考后期望得分 \(100 + 100 + 20 + 100 + 50 + ...
- NOIP 2018 真・退役记
目录 NOIp 2018 真・退役记 7.01 7.05 \(summary\) 7.12 7.18 7.26 - 7.27 8.2 8.3 8.3 8.7 8.9 8.20 8.24 8.27 8. ...
- NOIP 2018 普及组 解题报告
目录 标题统计 题目链接 思路 代码 龙虎斗 题目链接: 思路 代码 摆渡车 题目链接: 思路 对称二叉树 题目链接 思路: 先来解释一下为毛现在才来发解题报告: 其实博主是参加过NOIP 2018普 ...
- NOIP 2018旅行题解
从佳木斯回来刷一刷去年没A的题 题目描述 小 Y 是一个爱好旅行的 OIer.她来到 X 国,打算将各个城市都玩一遍. 小Y了解到, X国的 nn 个城市之间有 mm 条双向道路.每条双向道路连接两个 ...
- noip 2018 Day2 T1 旅行
暴力删边,暴力枚举 #include <bits/stdc++.h> using namespace std; #define MAXM 5010 inline int read() { ...
随机推荐
- WebMagic
一.WebMagic的四个组件 1.Downloader Downloader负责从互联网上下载页面,默认使用apache HttpClient作为下载工具 2.PageProcessor 负责解析页 ...
- java框架之SpringBoot(6)-Restful风格的CRUD示例
准备 环境 IDE:Idea SpringBoot版本:1.5.19 UI:BootStrap 4 模板引擎:thymeleaf 3 效果:Restful 风格 CRUD 功能的 Demo 依赖 &l ...
- python基础之 面向对象
1.什么是面向对象? 在大学学习c#的时候接触面向对象,知道好像有什么方法,属性,人狗大战啥的.但是都忘记了,也不知道面向对象到底是个啥! 在python中一切都是对象,linux中一切都是文件(突然 ...
- 在 .Net Core1.0 上使用Mysql 的EFcore
https://www.codeproject.com/Articles/1218348/Using-EF-Core-with-MySQL-in-DotNet-Core
- fiddler学习总结--通过Fiddler模拟弱网进行测试
弱网测试的目的: 弱网测试可以发现一些因为网络问题导致的交互问题,从而更好的完善应用的性能. 关注点:1.卡死,崩溃,无响应,闪退.2.业务交互数据传输正确性. 通过Fiddler可以模拟弱网进行测试 ...
- db2空值、null
1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成''; 2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputP ...
- git 常用命令收集
1. 查看某文件的历史递交记录git log --pretty=oneline 文件名 2. 查看远程仓库信息 git remote show origin 3. 查看用户名和修改用记名: git c ...
- js高级---本地对象、内置对象、宿主对象
名词参考: 原生对象:也叫内部对象.本地对象.native object 内置对象:Build-in object 宿主对象:host object ECMA-262 定义: 原生对象:独立于宿主环境 ...
- 什么是软件开发工具包(SDK)
开发一个软件,需要经过编辑.编译.调试.运行几个过程. 编辑:使用编程语言编写程序代码的过程. 编译:如上一节所讲,就是将编写的程序进行翻译. 调试:程序不可能一次性编写成功,编写过程中难免会出现语法 ...
- DRF之认证组件源码解析
认证组件 认证的几种方法:cookie,session,token几种.但是session会使服务器的压力增大,所以我们经常使用的是token.获取唯一的随机字符串: 登陆携带token值的处理: ...