
正文
hdu 1869 枚举+Dijstra
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一点小变形就是了。。】 #include<iostream>
#include<cstdio>
#define maxn 201
#define inf 999999
using namespace std;
int n,m,mapp[maxn][maxn],dis[maxn],vis[maxn];
void init()
{
fill(dis,dis+n,inf);
fill(vis,vis+n,);
}
void dij(int s)
{
dis[s]=;
while()
{
int v=-;
for(int i=;i<n;i++) if(!vis[i]&&(v==-||dis[i]<dis[v])) v=i;
if(v==-) break;//如果
vis[v]=;
for(int i=;i<n;i++) dis[i]=min(dis[i],dis[v]+mapp[v][i]);
}
}
int main()
{
cin.sync_with_stdio(false);
while(cin>>n>>m)
{
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
if(i==j) mapp[i][j]=;
else mapp[i][j]=inf;
}
}
while(m--)
{
int a,b;
cin>>a>>b;
mapp[a][b]=mapp[b][a]=;
}
int flag=;
for(int i=;i<n;i++)
{
init();
if(flag) break;
dij(i);
for(int j=;j<n;j++) if(dis[j]>=)
{
flag=;
break;
}
}
if(flag) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
return;
}







