description

N 个结点、M 个含K 个结点的完全子图构成一个奇怪的图,问从结点1 走
到结点N 最少需要经过多少个结点。


analysis

  • bfsbfsbfs

  • 对于一个小完全图,不要暴力两两连边

  • 其实我们把它连成一个菊花图,用中间的点连向这些点即可

  • 然后跑一次宽搜


code

#pragma GCC optimize("O3")
#pragma G++ optimize("O3")
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<vector>
#define MAXN 110005
#define ll long long
#define reg register ll
#define fo(i,a,b) for (reg i=a;i<=b;++i)
#define fd(i,a,b) for (reg i=a;i>=b;--i)
#define O3 __attribute__((optimize("-O3")))using namespace std;vector<ll>v[MAXN];
ll n,m,k,ans=-1;
bool bz[MAXN];
ll val[MAXN];struct node
{ll x,dis;
}que[MAXN];O3 inline ll read()
{ll x=0,f=1;char ch=getchar();while (ch<'0' || '9'<ch){if (ch=='-')f=-1;ch=getchar();}while ('0'<=ch && ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;
}
O3 inline ll max(ll x,ll y)
{return x>y?x:y;
}
O3 int main()
{//freopen("T2.in","r",stdin);n=read(),k=read(),m=read();fo(i,1,n)val[i]=1;fo(i,1,m){val[n+i]=0;fo(j,1,k){ll x=read();v[n+i].push_back(x),v[x].push_back(n+i);}}memset(bz,1,sizeof(bz)),bz[1]=0;ll l=0,r=1;que[1].x=1,que[1].dis=1;while (l<r){node now=que[++l];if (now.x==n){ans=now.dis;break;}if (!v[now.x].size())continue;fo(i,0,v[now.x].size()-1)if (bz[v[now.x][i]]){bz[v[now.x][i]]=0;que[++r].x=v[now.x][i],que[r].dis=now.dis+val[v[now.x][i]];}}printf("%lld\n",ans);return 0;
}

【JZOJ3155】最短路相关推荐

  1. [C] [最短路] 只有5行的算法:Floyd-Warshall

    终于学到求最短路了,终于来到我最喜欢的算法--Floyd-Warshall了!今天还有点小激动呢! 我喜欢它,当然是因为它逻辑十分简单咯!真的只有5行诶! Floyd-Warshall算法 题目描述 ...

  2. BZOJ4152 AMPPZ2014 The Captain(最短路)

    事实上每次走到横坐标或纵坐标最接近的点一定可以取得最优方案.于是这样连边跑最短路就可以了. #include<iostream> #include<cstdio> #inclu ...

  3. Codeforces.1051F.The Shortest Statement(最短路Dijkstra)

    题目链接 先随便建一棵树. 如果两个点(u,v)不经过非树边,它们的dis可以直接算. 如果两个点经过非树边呢?即它们一定要经过该边的两个端点,可以直接用这两个点到 u,v 的最短路更新答案. 所以枚 ...

  4. BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 2343  Solved: 1266 [Submit][Status][Discuss] Descrip ...

  5. HDU1811 Rank of Tetris 拓扑排序+并查集 OR 差分约束最短路+并查集

    题目链接 题意:就是给你一堆关系,看能不能排出个确定的顺序 做法: 1. 拓扑排序+并查集 应该很容易想到的一种思路,大于小于建立单向边.对于相等的呢,就把他们缩成一个点.就用并查集缩成一个点就行了 ...

  6. E:By Elevator or Stairs? CF595 DP最短路

    题目链接 比赛的时候一看,这不是最短路吗,然后敲了一个最短路. 然后比赛完发现大家基本都写的dp,我真是个憨憨,dp3行 最短路就建个简单的图,dp就是从上一维转化过来就是了 优秀的dp: //#pr ...

  7. The Shortest Statement CodeForces - 1051F LCA+最短路

    太弱了... 一开始看到题感觉是跑一个最小生成树在上边进行LCA就行了,但是发现过不了样例,然后就是就想到了之前做过类似做法的题目,就是非生成树上的边最多只有21条,然后就那些边记录下来,通过每一条边 ...

  8. JZOJ #4722 跳楼机 (最短路模型的完美转化)

    题目描述: 给出$h,x,y,z$,求在$h$以内,$x,y,z$可以凑出多少个不同的数.$(1\leq{h}\leq{10^{18}},1\leq{x,y,z}\leq{10^5})$ 解题思路: ...

  9. matlab单机无限大系统_基于MATLAB的单机无穷大系统短路故障分析_吕鹏

    _______________________________电子技术__丝I 基于MA丁LAB的单机无穷大系统短路故障分析 山东科技大学吕鹏钟家成纪妮妮李漫漫 [摘要]本z l),NIATLAB7. ...

最新文章

  1. 星梦缘陈彦妃_还记得《星梦缘》的女主吗,她现在变成这样了
  2. c# 编写自定义异常类
  3. 并发(Concurrency)和并行(Parallelism)
  4. SciPy和Numpy处理能力
  5. 修改Hybris Administration console管理员默认登录密码
  6. flutter的按钮如何变为不可选中_Flutter 61: 图解基本 Button 按钮小结 (一)
  7. matlab读取图片的频率,获得时域图之后,也获得了频域图,但是如何查看频率呢......
  8. Spring Boot入门到牛X
  9. 网管必杀技之VLAN的网络管理
  10. 创建父需求子需求构建需求树_还不知道B+树 ?看完,别再问我什么是B+树 了
  11. VBA Mysql 类
  12. 读书笔记-泛型有限通配符
  13. Android 开发环境搭建之——ADT-Bundle for Windows
  14. 海航通信启动通信+大数据战略 海航宽带首次发布
  15. 现代软件工程_团队项目_阿尔法阶段_第二次会议记录_2017.11.13
  16. 2013计算机学科排名,2013年世界大学学科排名 计算机科学.pdf
  17. 将电脑输入法关闭只留我们经常用的输入法
  18. Arduino 编译出错:Pixy2I2C.h: No such file or directory
  19. python关于列表去重和删除的方法
  20. 诚之和:没了“全网最低价”,薇娅李佳琦靠什么支撑背后公司上市?

热门文章

  1. 第六章 词法分析与词性标注
  2. 必和必拓的股息应该至少会下降50%
  3. 对潮玩和NFT数字潮玩的一些看法
  4. 怎么在别人网站注入js脚本_别人的网站是怎么实现引流的?这些站外SEO技巧是关键...
  5. 文档对象模型DOM(获取元素节点、设置节点属性)
  6. ZEMAX多重结构分光镜模拟
  7. python实现3d人物建模_放心的python实现3d人物建模容易学吗?,zbrush不规则金属硬边...
  8. 华为鸿蒙系统支持谷歌地图,华为鸿蒙系统支持安卓应用吗
  9. 基于java+jsp+ssm餐饮管理系统-计算机毕业设计
  10. 用matlab求不动点迭代,matlab实现不动点迭代、牛顿法、割线法