团体程序设计天梯赛-练习集 - L3-008 喊山(30 分)

简介: 团体程序设计天梯赛-练习集 - L3-008 喊山(30 分)

题目链接:点击打开链接

题目大意:略。

解题思路:略。

AC 代码1(BFS版)

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
intn,m,k;
intvis[10009], lvl[10009], book[10009];
vector<int>vec[10009];
intbfs(ints)
{
intma=0, idx=-1;
mem(lvl,0), mem(book,0);
queue<int>q;
q.push(s);
lvl[s]=0;
book[s]=1;
inttp,v;
while(!q.empty())
    {
tp=q.front(), q.pop();
for(inti=0;i<vec[tp].size();i++)
        {
v=vec[tp][i];
if(!book[v])
            {
book[v]=1;
lvl[v]=lvl[tp]+1;
q.push(v);
if(lvl[v]>ma) ma=lvl[v], idx=v;
elseif(lvl[v]==ma&&idx>v) idx=v;
            }
        }
    }
returnidx;
}
intmain()
{
intu,v;
scanf("%d%d%d",&n,&m,&k);
for(inti=0;i<m;i++)
    {
scanf("%d%d",&u,&v);
vec[u].push_back(v);
vec[v].push_back(u);
vis[u]=vis[v]=1;
    }
while(k--)
    {
scanf("%d",&u);
if(!vis[u]) puts("0");
elseprintf("%d\n",bfs(u));
    }
return0;
}


TLE 代码2(Dijkstra版)

#include<bits/stdc++.h>#include<cmath>#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007usingnamespacestd;
typedeflonglongll;
constintmaxn=1e4+10;
intn,m,k;
intdis[maxn], vis[maxn], book[maxn];
unordered_map<int,int>ump;
intfhash(inta,intb)
{
returna*10000+b;
}
intdijkstra(ints)
{
intw, ma=-1, idx=-1;
dis[s]=0;
while(1)
    {
intmi=INF; s=-1;
for(inti=1;i<=n;i++)
if(!vis[i] &&mi>dis[i]) mi=dis[i], s=i;
if(s==-1) returnidx;
vis[s]=1;
for(inti=1;i<=n;i++)
        {
w=ump[fhash(s,i)]==1?1:INF;
if(!vis[i] &&mi+w<dis[i])
            {
dis[i]=mi+w;
if(ma<dis[i]) ma=dis[i], idx=i;
elseif(ma==dis[i] &&i<idx) idx=i;
            }
        }
    }
}
intmain()
{
intu,v,w;
scanf("%d%d%d",&n,&m,&k);
for(inti=0;i<m;i++)
    {
scanf("%d%d",&u,&v);
ump[fhash(u,v)]=ump[fhash(v,u)]=1;
book[u]=book[v]=1;
    }
while(k--)
    {
scanf("%d",&u);
if(!book[u]) puts("0");
else        {
mem(dis,INF), mem(vis,0);
intidx=dijkstra(u);
printf("%d\n",idx);
        }
    }
return0;
}
目录
相关文章
团体程序设计天梯赛-练习集L2篇⑨
团体程序设计天梯赛-练习集L2篇⑨
158 0
团体程序设计天梯赛-练习集L2篇⑦
团体程序设计天梯赛-练习集L2篇⑦
74 0
|
Perl
团体程序设计天梯赛-练习集L1篇③
团体程序设计天梯赛-练习集L1篇③
131 0
|
测试技术
团体程序设计天梯赛-练习集L2篇⑥
团体程序设计天梯赛-练习集L2篇⑥
110 0
|
算法 安全 定位技术
团体程序设计天梯赛(上)
团体程序设计天梯赛
443 0
团体程序设计天梯赛(上)
|
存储 大数据
团体程序设计天梯赛(下)
团体程序设计天梯赛(下)
398 0
团体程序设计天梯赛(下)
|
机器学习/深度学习 程序员 Python
团体程序设计天梯赛-模拟赛(上)
团体程序设计天梯赛-模拟赛
724 0
团体程序设计天梯赛-模拟赛(上)
|
算法
团体程序设计天梯赛-模拟赛(下)
团体程序设计天梯赛-模拟赛(下)
480 0
团体程序设计天梯赛-模拟赛(下)
【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)
【CCCC】PAT : 团体程序设计天梯赛-练习集 L3 答案(01-23)
122 0