车站分级

题目传送门

解题思路

这题就是用拓扑排序分层
首先是建图
每进行一次输入,就将没有停靠的站与停靠的站都建立一条边
因为题目样例不怎么大,所以可以用邻接矩阵

for(int i=1;i<=m;i++)//输入
{cin>>x;memset(c,0,sizeof(c));//清零for(int j=1;j<=x;j++){cin>>a[j];c[a[j]]=1;//标记}for(int j=a[1];j<=a[x];j++)//建图if(c[j]==0)//不是停靠站for(int k=1;k<=x;k++)if(map[j][a[k]]==0)//如果无边{du[a[k]]++;//入度++map[j][a[k]]=1;//建边}
}

拓扑中,用一个f存层数,用一个s找最大层数

f[i]=f[p[h]]+1;//dp
s=max(s,f[i]);//找最大

呈上AC代码

AC代码

#include<iostream>
#include<cstring>
using namespace std;
int n,m,x,h,t,s,a[1005],c[1005],p[1005],f[1005],du[1005],map[1005][1005];
void tp()
{memset(c,0,sizeof(c));for(int i=1;i<=n;i++)//找度为0的入队if(du[i]==0){p[++t]=i;c[i]=1;f[i]=1;}//入队,标记,初值while(h<t){h++;for(int i=1;i<=n;i++)//枚举点if(map[p[h]][i]==1&&c[i]==0)//如果有边并且没有标记{du[i]--;//度--(删边)if(du[i]==0)//如果度为0{f[i]=f[p[h]]+1;//dps=max(s,f[i]);//找最大c[i]=1;//标记p[++t]=i;//入队}}}
}
int main()
{cin>>n>>m;for(int i=1;i<=m;i++)//输入{cin>>x;memset(c,0,sizeof(c));//清零for(int j=1;j<=x;j++){cin>>a[j];c[a[j]]=1;//标记}for(int j=a[1];j<=a[x];j++)//建图if(c[j]==0)//不是停靠站for(int k=1;k<=x;k++)if(map[j][a[k]]==0)//如果无边{du[a[k]]++;//入度++map[j][a[k]]=1;//建边}}tp();//拓扑cout<<s;//输出
}

谢谢

P1983 车站分级(拓扑排序)相关推荐

  1. 洛谷P1983 车站分级 拓扑排序

    题目链接:https://www.luogu.com.cn/problem/P1983 此题是用拓扑排序求层数,将等级高的点连向等级的点,连成的图用拓扑排序看一下多少层,即答案. 代码如下 #incl ...

  2. P1983 [NOIP2013 普及组] 车站分级——拓扑排序+dp

    [NOIP2013 普及组] 车站分级 题目描述 一条单向的铁路线上,依次有编号为 $1, 2, -, n $的 $n $个火车站.每个火车站都有一个级别,最低为 111 级.现有若干趟车次在这条线路 ...

  3. NOIP2013pj车站分级[拓扑排序]

    题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了 ...

  4. luogu P1983 车站分级

    题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...

  5. 洛谷P1983 车站分级(图的建立)

    题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n的 n个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站  ...

  6. 洛谷 P1983 车站分级(拓扑排序)

    https://www.luogu.com.cn/problem/P1983 思路 对于每一趟车,将其经过的车站中,停靠的和不停靠的连一条边,注意边的去重,要双向标记,不然有个点会超时,这样拓扑排序递 ...

  7. 洛谷P1983 车站分级(拓扑排序)

    [题目描述] 一条单向的铁路线上,依次有编号为 1 , 2 , - , n 1,2,\dots ,n 1,2,-,n的 n n n个火车站.每个火车站都有一个级别,最低为 1 1 1级.现有若干趟车次 ...

  8. P1983 车站分级

    题面:https://www.luogu.org/problem/P1983 首先我们来谈一谈邻接表+dfs: 假设有一辆车经过三个车站ai,aj,ak(ai,aj,ak车站编号递增) 那么在ai,a ...

  9. 洛谷 P1983 车站分级

    嗯... 听说这是一道存图+拓扑排序的题,但是看了一晚上好像只看出存图来.... 自己太蒟蒻,然后没办法,就.....就借用了Mr Kevin的代码和思路,然后自己做了一些了解... (并且现在自己对 ...

最新文章

  1. WPF判断两个时间大小避免误差
  2. 前后端分离的探索(四)
  3. 海外观察丨6 大营销风向洞察,暗藏哪些机会?
  4. id文本框适应文字_Indesign中对同一行文字进行分行缩排的操作方法
  5. 如何用html构建ios应用,使用HTML5构建iOS原生APP
  6. 关于Qt、Qt/E、Qtopia、qvfb、framebuffer、qpe等概念的对比介绍
  7. python基础语法类型_Python基本语法[2]-简单数据类型,基础
  8. (76)时序分析基础(基本资源)
  9. pycharm python3.7环境_Python3+Pycharm+PyQt5环境搭建步骤图文详解
  10. 李开复:多次失败后,我总结出最优秀创业者的4个特点
  11. Hive 实用的第三方 UDF 收集
  12. 变限积分求导公式总结_变限积分求导公式是什么?
  13. 如何在ESXi7系列镜像里添加网卡vib驱动?
  14. 记一次企业邮官网SEO优化
  15. android beam小米,小米手机自定义空白卡模拟加密卡门禁卡教程
  16. Git 常用命令练习
  17. 【推荐算法论文阅读】LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
  18. JQuery极果商城项目实战(附完整代码)
  19. 针对大型网吧:阿尔法千兆网吧解决方案(转)
  20. TP框架无法写入缓存文件

热门文章

  1. python基于PHP+MySQL的汽车零配件生产企业ERP生产管理子系统
  2. open-falcon(小米监控安装)
  3. Excel将合并单元格后的数据也合并到某一单元格
  4. DTK常用和测试代码片
  5. Murphy定律完整版
  6. excel制作订单管理系统_如何在Excel中制作订单
  7. 同时连接了无线和有线,如何查看当前连接的是哪个
  8. 世界人工智能大会见闻
  9. 【标准全文】GBT 40429-2021_汽车驾驶自动化分级
  10. nyoj 1239 引水工程 (河南省第八届acm程序设计大赛)