团体程序设计天梯赛-练习集 - L3-008 喊山(30 分)
发布日期:2021-06-30 23:43:55 浏览次数:3 分类:技术文章

本文共 1451 字,大约阅读时间需要 4 分钟。

题目链接:

 

题目大意:略。

 

解题思路:略。

 

AC 代码1(BFS版)

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;int n,m,k;int vis[10009], lvl[10009], book[10009];vector
vec[10009];int bfs(int s){ int ma=0, idx=-1; mem(lvl,0), mem(book,0); queue
q; q.push(s); lvl[s]=0; book[s]=1; int tp,v; while(!q.empty()) { tp=q.front(), q.pop(); for(int i=0;i
ma) ma=lvl[v], idx=v; else if(lvl[v]==ma && idx>v) idx=v; } } } return idx;}int main(){ int u,v; scanf("%d%d%d",&n,&m,&k); for(int i=0;i

 

TLE 代码2(Dijkstra版)

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;const int maxn=1e4+10;int n,m,k;int dis[maxn], vis[maxn], book[maxn];unordered_map
ump;int fhash(int a,int b){ return a*10000+b;}int dijkstra(int s){ int w, ma=-1, idx=-1; dis[s]=0; while(1) { int mi=INF; s=-1; for(int i=1;i<=n;i++) if(!vis[i] && mi>dis[i]) mi=dis[i], s=i; if(s==-1) return idx; vis[s]=1; for(int i=1;i<=n;i++) { w=ump[fhash(s,i)]==1?1:INF; if(!vis[i] && mi+w

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82499076 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:团体程序设计天梯赛-练习集 - L3-014 周游世界(30 分)
下一篇:SDUT - 2498: 数据结构实验之图论十一:AOE网上的关键路径

发表评论

最新留言

很好
[***.229.124.182]2024年05月03日 07时15分39秒