题目描述

一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站。每个火车站都有一个级别,最低为 1 级。现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x,则始发站、终点站之间所有级别大于等于火车站 x 的都必须停靠。(注意:起始站和终点站自然也算作事先已知需要停靠的站点)

例如,下表是 5 趟车次的运行情况。其中,前 4 趟车次均满足要求,而第 5 趟车次由于停靠了 3 号火车站(2 级)却未停靠途经的 6 号火车站(亦为 2 级)而不满足要求。

现有 m 趟车次的运行情况(全部满足要求),试推算这 n 个火车站至少分为几个不同的级别。

输入输出格式

输入格式:

输入文件为 level.in。

第一行包含 2 个正整数 n, m,用一个空格隔开。

第 i + 1 行(1 ≤ i ≤ m)中,首先是一个正整数 si(2 ≤ si ≤ n),表示第 i 趟车次有 si 个停靠站;接下来有 si个正整数,表示所有停靠站的编号,从小到大排列。每两个数之间用一个空格隔开。输入保证所有的车次都满足要求。

输出格式:

输出文件为 level.out。

输出只有一行,包含一个正整数,即 n 个火车站最少划分的级别数。

输入输出样例

输入样例#1:

9 2
4 1 3 5 6
3 3 5 6 

输出样例#1:

2

输入样例#2:

9 3
4 1 3 5 6
3 3 5 6
3 1 5 9 

输出样例#2:

3

说明

对于 20%的数据,1 ≤ n, m ≤ 10;

对于 50%的数据,1 ≤ n, m ≤ 100;

对于 100%的数据,1 ≤ n, m ≤ 1000。

思路:对于每一个停靠的车站向不停靠的车站连边,拓扑排序后求最长路即可。拓扑排序保证无后效性,最长路保证级数递减时总级别最小。

#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<iostream>
#include<cmath>using namespace std;const int MAXN=1010;
struct edge
{int next,to,val;
};
edge e[MAXN*MAXN*2];
int head[MAXN*MAXN],cnt;
bool build[MAXN][MAXN];
int n,m;
int in[MAXN],q[MAXN],l,r,dis[MAXN];
bool a[MAXN][MAXN];
int stop[MAXN];
inline void addedge(int u,int v)
{e[++cnt].next=head[u];e[cnt].to=v;in[v]++; head[u]=cnt;
}
inline void tp_sort(int n)
{for (int i=1;i<=n;i++){if (!in[i]){q[++r]=i;dis[i]=1;}}while (l<r){int x=q[++l];for (int i=head[x];i;i=e[i].next){in[e[i].to]--;if (!in[e[i].to]){  q[++r]=e[i].to;dis[e[i].to]=dis[x]+1;}}}
}
int main()
{scanf("%d%d",&n,&m);int longest=0;for (int i=1;i<=m;i++){int s;bool p=true;scanf("%d",&s);for (int j=1;j<=s;j++){scanf("%d",&stop[j]);a[i][stop[j]]=1;}longest=max(longest,stop[s]);for (int k=stop[1];k<=stop[s];k++){if (!a[i][k]){for (int j=1;j<=s;j++){     if (!build[stop[j]][k]){addedge(stop[j],k);build[stop[j]][k]=1;}}}}}tp_sort(longest);int ans=0;for (int i=1;i<=longest;i++){ans=max(ans,dis[i]);}cout<<ans;return 0;
}

洛谷 1983 车站分级相关推荐

  1. 洛谷-1983 车站分级

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

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

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

  3. 洛谷 P1983 车站分级

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

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

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

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

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

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

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

  7. 洛谷 P1983 车站分级

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

  8. 洛谷P1983 车站分级

    这题有三种做法 1.O(nm2)1.O(nm2)1.O(nm^2) 488ms / 9.61MB / 0.68KB 不用讲,直接贴代码 #include<bits/stdc++.h> us ...

  9. [NOIP1998] 提高组 洛谷P1011 车站

    题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...

最新文章

  1. JQuery EasyUI学习框架
  2. c++ string replace_Java——String类的常用方法总结
  3. 编程之美 set 12 快速找出故障机器
  4. 杭州云栖大会阿里云放大招,8K远程医疗会诊引关注
  5. python集合操作班级干部竞选演讲稿_精选竞选班干部的演讲稿集合7篇
  6. mfc 固定编辑框输入上限和下限_S7200smart的模拟量输入输出
  7. SQLServer数据库写入操作时报错:not all arguments converted during string formatting 问题解决
  8. 1.Grettings and Introductions
  9. win7系统文件夹共享后有锁图标怎么去掉?
  10. 东航手机值机选座推荐
  11. Jenkins踩坑:Failed to connect to repository : Error performing git command: git ls-remote -h http://17
  12. 机器学习公开课笔记第一周
  13. 局域网唤醒计算机,电脑远程开机_局域网唤醒电脑 | 茶杯猫
  14. parker派克柱塞泵PV046R1K1T1NUDM
  15. 关于寻迹小车组装建议
  16. 机器人简化图画手绘图_机器人简笔画画法图片欣赏
  17. HTML: 点击链接时在新窗口打开
  18. 恩智浦刘立冬:推动虚拟化的实现,才能进一步实现NFV的部署
  19. celeron处理器_NISE3600E 基于第三代Intel Core i7/i5/i3处理器,无风扇系统,1个PCIex4扩展槽...
  20. 测试工程师-yy面试 cvte面试总结

热门文章

  1. java分时共享办公系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  2. word插入代码美化在线站点
  3. 一周涨粉2686万,刘畊宏爆火,这2点自媒体运营技巧值得学习
  4. the response ended prematurely.
  5. 商业银行间如何结算_银行间常见交易结算业务要点整理
  6. 电梯调度算法简单实现(c语言)
  7. HIT CSAPP——程序人生-Hello’s P2P
  8. motionFX ST意法半导体X-MEMS运动融合库
  9. 【失业预告】生成式人工智能 (GAI)AIGC
  10. 交互设计课程的心得体会