( ̄▽ ̄)"

#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. [UWP小白日记-8]一些零碎的东西

    设置启动窗口大小 直接上代码了没什么好解释的了,既然能设置最小,那铁定就能设置最大 public MainPage() { //设定窗口启动显示大小 ApplicationView.Preferred ...

  2. js实现复制内容

    一.实现点击按钮,复制文本框中的的内容                         <script type="text/javascript"> function ...

  3. Linux 分区挂载方案

    /boot 1G swap 2G(看内存决定) / 10-15G /home 5G

  4. Java learning notes (1):Basic Knowlege points

    Basic Knowlege points: 1: it's necessary that there is only one public class in per .java file 2: .j ...

  5. GIT 代码管理工具 SourceTree

    什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的 git的起源 作者是Linux之父:Linus Benedict Torval ...

  6. android 控件ui

    公共参数: android:id="@+id/text_view"  给当前控件定义了 一个唯一标识符如:text_view android:layout_width=" ...

  7. 关于ajax的短轮询问题

    利用前台的ajax不断向后台服务器请求,后台服务器不断查看数据库里的信息是否变化.若变化将信息返回前台,并执行一些操作 前台ajax代码 注意要加上cache这一项,如果是post请求的化,可以免了. ...

  8. 利用before、after制作提示框

    提示框由两部分组成,框+箭头,箭头则利用伪元素before.after写成. 根据提示框的样式可以看出,上面的箭头由两部分组成:灰色大箭头+蓝色小箭头,蓝色嵌套在灰色里面,于是箭头就有了边框,整体搭配 ...

  9. centos 安装cacti监控

    CentOS 6下Cacti搭建文档 安装依赖关系 yum -y install mysql-devel httpd php php-pdo php-snmp php-mysql lm_sensors ...

  10. Java 代码性能优化

    代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是, ...