( ̄▽ ̄)"

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdlib>
#include<vector>
#include<stack>
#include<map>
using namespace std;
typedef long long ll; const int INF=10e8;
const int MAXN=410; int k,minn;
int lc[MAXN],c1[MAXN][MAXN],c2[MAXN][MAXN];
bool vis[MAXN]; int dij(int n,int c[][MAXN])
{
memset(vis,0,sizeof(vis));
for(int i=1;i<=n;i++)
lc[i]=c[1][i];
vis[1]=1; for(int j=1;j<=n;j++)
{
k=-1,minn=INF;
for(int i=1;i<=n;i++)
{
if(!vis[i]&&minn>lc[i])
{
minn=lc[i];
k=i;
}
}
if(k==-1) break;
vis[k]=1;
for(int i=1;i<=n;i++)
if(!vis[i]&&lc[i]>lc[k]+c[k][i])
lc[i]=lc[k]+c[k][i];
}
if(lc[n]==INF)
lc[n]=-1;
return lc[n];
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
int flag=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(i==j)
{
c1[i][j]=c1[j][i]=0;
}
else
{
c1[i][j]=c1[j][i]=INF;
c2[i][j]=c2[j][i]=INF;
}
}
} for(int i=1;i<=m;i++)
{
int u,v;
scanf("%d%d",&u,&v);
c1[u][v]=c1[v][u]=1;
if((u==1&&v==n)||(u==n&&v==1))
flag=1;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(c1[i][j]==0||c1[i][j]==INF)
c2[i][j]=c2[j][i]=1;
}
}
if(m==n*(n-1)/2)
printf("-1\n");
else
{
if(flag==1)
printf("%d\n",dij(n,c2));
else if(flag==0)
printf("%d\n",dij(n,c1));
}
return 0;
}

CF 602C The Two Routes(dij+邻接矩阵)的更多相关文章

  1. POJ 2387 Til the Cows Come Home(dij+邻接矩阵)

    ( ̄▽ ̄)" //dijkstra算法: //这题建邻接矩阵的时候有坑(先读入边后读入点),还有重边: #include<iostream> #include<cstdio ...

  2. POJ 3268 Silver Cow Party(dij+邻接矩阵)

    ( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<algorithm> #include<cs ...

  3. POJ 1062 昂贵的聘礼(dij+邻接矩阵)

    ( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<cstring> #include<cstd ...

  4. HDU 1548 A strange lift(dij+邻接矩阵)

    ( ̄▽ ̄)" //dijkstra算法, //只是有效边(即能从i楼到j楼)的边权都为1(代表次数1): //关于能否到达目标楼层b,只需判断最终lowtime[b]是否等于INF即可. # ...

  5. CodeForces 602C The Two Routes(最短路)

    Description In Absurdistan, there are n towns (numbered 1 through n) and m bidirectional railways. T ...

  6. L2-020. 功夫传人(dfs+vector 或者 邻接矩阵+dij+优先队列)

    L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...

  7. 【50.00%】【codeforces 602C】The Two Routes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  8. HDU2544 最短路dij

    纯最短路. ///HDU 2544堆优化的最短路 #include <cstdio> #include <iostream> #include <sstream> ...

  9. 蒟蒻修养之cf橙名计划

    因为太弱,蒟蒻我从来没有上过div1(这就是今年的最后愿望啊啊啊啊啊)已达成................打cf几乎每次都是fst...........所以我的cf成绩图出现了惊人了正弦函数图像.. ...

随机推荐

  1. CSS3效果收集

    收集一些 CSS3 效果 1. 闪烁字效果 原效果>>

  2. php学习笔记——语言切换

    现在的网站很多都可以实现多语言,于是记录一下多语言的实例. 方法一:通过将所有显示在页面的字段放在一个message文件里面来实现 思路如下图: test代码: main.php: <?php ...

  3. js中setTimeout()的使用

    setTimeout()在js类中的使用方法   setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  4. 照片处理软件(iSee图片专家) 3.930 中文免费版

    软件名称: 照片处理软件(iSee图片专家) 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win 32位/64位 软件大小: 13.5MB 图片预览: 软件简介: iSee图片专家,免费一 ...

  5. moodle笔记之-数据库操作

    <?php require_once('../config.php'); // config.php under root folder require_once($CFG->dirroo ...

  6. WebForm 文件上传

    //Button1的点击事件 //FileUpload1.FileName为所传文件的名字. //以DateTime.Now.ToString("yyyyMMddhhmmssms" ...

  7. JVM调优实战

      JVM调优实战 文档修订记录 版本 日期 撰写人 审核人 批准人 变更摘要 & 修订位置                                                   ...

  8. CodeForces 710B Optimal Point on a Line

    递推. 先对$a[i]$进行从小到大排序. 然后计算出每个点左边所有点到这个点的距离之和$L[i]$,以及右边每个点到这个点的距离之和$R[i]$. 这两个都可以递推得到. $L\left[ i \r ...

  9. 驱动相关Error

    驱动中 fltKernel.h报 EPROCESS和PETHREAD重定义异常解决办法 驱动编写中经常会莫名出现 error C2371: 'PEPROCESS' : redefinition; di ...

  10. scale-free network

    原文链接:http://lihailian.bokee.com/6013647.html 1.什么是无尺度现象? 统计物理学家习惯于把服从幂次分布的现象称为无尺度现象. 在做大量统计实验之前,科学家预 ...