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() { ...
随机推荐
- outlook2016用Exchange轻松绑定腾讯企业邮箱
系统版本:Win10 X64 1709 英文版 邮箱:Outlook2016 背景知识: 1.发送邮件均使用SMTP协议(SMTP 全称“Simple Mail Transfer Protocol”, ...
- 重写select样式
select {/*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/border: solid 1px #000; /*很关键:将默认的select选择框样式清除*/appeara ...
- visual studio code常用插件
1.auto close tag2.chinese language pack for visual studio code3.debugger for chrome4.docker5.html cs ...
- c# 文件与流
1.创建和删除目录 在c#中涉及到输入.输出(i/o)相关操作的API都被放在System.IO命名空间下,或者子命令System.IO.IsolatedStoorage中.对目录进行操作可以使用Di ...
- HTML5入门教程:响应式页面布局
摘自:https://www.sohu.com/a/225633935_647584 随着互联网时代的发展,我们对网页布局有了新的要求,大气,美观,能够在不同的设备上呈现令人焕然一新的效果.此时,一个 ...
- Linux 安装vsftpd和ftp客户端
1.下载安装包:ftp-0.17-54.el6.x86_64.zip和vsftpd-2.2.2-11.el6_4.1.x86_64.zip 可以直接在Linux底下用yum install vsftp ...
- pyCharm的第一个项目
首先打开编译器pyCharm 创建一个项目 在location :新建文件夹 在interpreter:指定python解释器的路径 python解释器下载官网: https://www.python ...
- Spring笔记 #02# 利用切面和注解校验方法参数
例子还是之前的例子.仍然是对mage进行法术攻击时的咒语进行校验,不过略微提高了扩展性. 应用示例 1.在.properties文件中定义参数格式(正则): sp1=^\\D*hello\\D*$ s ...
- Java连接数据库 #05# SQL与代码分离
索引 读取html中的SQL语句 缺陷总结 在Java连接数据库 #04#里大概是这样放sql语句的: package org.sample.shop.db.queryrunner; import o ...
- Vue 组件&组件之间的通信 之 template模板引用与动态组件的使用
template模板引用 在component的template中书写大量的HTML元素很麻烦. Vue提供了<template>标签,可以在里边书写HTML,然后通过ID指定到组建内的t ...