Luogu P5022 旅行 搜索+贪心
2024-08-28 10:11:50
好吧。。。一直咕。。现在才过。。。被卡常卡到爆。。。
写的垃圾版本,$n^2$无脑删边。。可以发现走出来的是棵树。。。更优秀的及数据加强版先咕着。。。一定写。qwq
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
#define ll long long
#define R register int
static char B[<<],*S=B,*D=B;
#define getchar() (S==D&&(D=(S=B)+fread(B,1,1<<15,stdin),S==D)?EOF:*S++)
using namespace std;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
} int n,m,tot;
int ans[]; bool vis[],used[][];
int w[][];
inline void dfs1(int u) { vis[u]=true; ans[++tot]=u;
for(R i=,lim=w[u][];i<=lim;++i) { R v=w[u][i];
if(!vis[v]) dfs1(v);
}
} int s[]; int U,V;
pair<int,int> e[];
inline void dfs2(int u) { vis[u]=true; s[++tot]=u;
for(R i=,lim=w[u][];i<=lim;++i) { R v=w[u][i];
if((u==U&&v==V)||(u==V&&v==U)) continue;
if(!vis[v]) dfs2(v);
}
}
inline bool ck() {for(R i=;i<=n;++i) if(s[i]!=ans[i]) return ans[i]>s[i]; return false;}
signed main() {
n=g(),m=g(); for(R i=,u,v;i<=m;++i) u=g(),v=g(),w[u][++w[u][]]=v,w[v][++w[v][]]=u,e[i]=make_pair(u,v);
for(R i=;i<=n;++i) sort(w[i]+,w[i]+w[i][]+);
if(m==n-) {
dfs1(); for(R i=;i<=n;++i) printf("%d ",ans[i]);
} else {
for(R i=;i<=n;++i) ans[i]=n-i+;
for(R i=;i<=m;++i) {
tot=; memset(vis,,sizeof(vis)); U=e[i].first,V=e[i].second;
dfs2(); if(tot==n&&ck()) memcpy(ans,s,sizeof(s));
} for(R i=;i<=n;++i) printf("%d ",ans[i]);
}
}
2019.06.04
最新文章
- Android应用开发SharedPreferences存储数据的使用方法
- LeetCode Reverse Words in a String II
- LocalStorage在Chrome里的实现
- Android 联系人字母排序(仿微信)
- PHP中使用函数array_merge()合并数组
- macos 配置 golang 开发环境
- mac os x 10.9.1 安装 Homebrew软件包管理工具及brew安装maven3.1.1
- java.lang.NoClassDefFoundError: com/ibatis/sqlmap/engine/mapping/result/BasicResultMap
- 对JAVA的static深刻理解(结合C语言的思考)
- 【应用】Markdown 在线阅读器
- 互联网二次进化—VR全景智慧城市
- NFA的实现
- HDU 2174 Bridged Marble Rings
- TinyMCE
- jquery中数组对象下面的属性名名是动态的如何获取
- 把ajax包装成promise的形式(2)
- 插入排序专题 直接插入 折半 希尔shell
- 通过$.ajax设置预加载动画加强用户体验
- 饮冰三年-人工智能-Python-14Python基础之变量与函数
- 第一篇 make与makefile介绍