这题好像是个蓝题。(不过也确实差不多QwQ)用到了拓扑排序的知识

我们看这些这车站,沿途停过的车站一定比未停的车站的级别高

所以,未停靠的车站向已经停靠的车站连一条边,入度为0的车站级别就看做1

然后我们把入度为0的边依次取出来,那么它的出边所指车站就一定比这个车站级别高

那么也就是说,一个车站的级别一定比所有指向它的车站中,级别最高的那个车站级别还要高1级

(x的级别小于y)

再跑一个拓扑就行了qwq

Code:

#include<bits/stdc++.h>
using namespace std;
const int maxm=;
const int maxn=;
int head[maxm],to[maxm],nxt[maxm];
int in[maxn],cnt,dep[maxn];
int a[maxn],flag[maxn],vis[maxn][maxn],ans;
inline void add(int u,int v)
{
cnt++;
to[cnt]=v;
nxt[cnt]=head[u];
head[u]=cnt;
}
int n,m;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
memset(a,,sizeof(a));
memset(flag,,sizeof(flag));
int k;
scanf("%d",&k);
for(int j=;j<=k;j++)
{
scanf("%d",&a[j]);
flag[a[j]]=;
}
for(int j=a[]+;j<=a[k];j++)
{
if(!flag[j])
{
for(int p=;p<=k;p++)
{
if(!vis[j][a[p]])
{
in[a[p]]++;
add(j,a[p]);
vis[j][a[p]]=;
}
}
}
}
}
queue<int> q;
for(int i=;i<=n;i++)
{
if(!in[i])
{
q.push(i);
dep[i]=;
}
}
while(!q.empty())
{
int top=q.front();
q.pop();
for(int e=head[top];e;e=nxt[e])
{
int v=to[e];
dep[v]=max(dep[v],dep[top]+);
ans=max(ans,dep[v]);
in[to[e]]--;
if(!in[to[e]])
{
q.push(to[e]);
}
}
}
cout<<ans;
return ;
}

【洛谷P1983 车站分级】的更多相关文章

  1. 洛谷P1983车站分级

    洛谷\(P1983\)车站分级(拓扑排序) 目录 题目描述 题目分析 思路分析 代码实现 题目描述 题目在洛谷\(P1983\)上 ​ 题目: 一条单向的铁路线上,依次有编号为 \(1, 2, -, ...

  2. 洛谷P1983 车站分级

    P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao ...

  3. 洛谷 P1983 车站分级

    题目链接 https://www.luogu.org/problemnew/show/P1983 题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n的 n个火车站.每个火车站都有一个级别,最低 ...

  4. 洛谷P1983车站分级题解

    题目 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排 ...

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

    Code: #include<cstdio> #include<queue> #include<algorithm> #include<cstring> ...

  6. 【洛谷P1983】车站分级

    车站分级 题目链接 首先,可以发现火车停靠站点的大小是没有什么规律的, 火车可以停靠在级别<=当前级别的站点,必须停靠在级别>=当前最高级别的站点 但是所有没有被停靠的站点级别一定比所有被 ...

  7. P1983 车站分级 思维+拓扑排序

    很久以前的一道暑假集训的题,忘了补. 感觉就是思维建图,加拓扑排序. 未停靠的火车站,必然比停靠的火车站等级低,就可以以此来建边,此处注意用vis来维护一下,一个起点和终点只建立一条边,因为不这样的话 ...

  8. 题解【洛谷P1983】[NOIP2013]车站分级

    题面 题解 不难想到拓扑排序 于是每一个等级高的向等级低的连一条边 考虑拓扑排序过程中的分层 对于每个点进行分层 于是答案就是这些点中的最大层数 然后就会RE 发现我们多连了一些重复的边 用一个标记数 ...

  9. 洛谷 洛谷 P1011 车站 Label:续命模拟QAQ 未知50分

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

随机推荐

  1. Python 入门之代码块、小数据池 与 深浅拷贝

    Python 入门之代码块.小数据池 与 深浅拷贝 1.代码块 (1)一个py文件,一个函数,一个模块,终端中的每一行都是代码块 (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟 ...

  2. PHP批量导入excell表格到mysql数据库

    PHP批量导入excell表格到mysql数据库,本人通过亲自测试,在这里分享给大家 1,下载 php  excell类库 网上搜索可以下载,这里不写地址 2,建html文件 <form met ...

  3. Redis---键的过期时间及数据淘汰策略

    5.键的过期时间   Redis可以为每个键设置过期时间,当键过期时,会自动删除该键.   对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时间. 6.数据 ...

  4. Vue 中如何定义全局的变量和常量

    Vue 中如何定义全局的变量和常量 我想要定义一个变量, 在项目的任何地方都可以访问到, 不需要每一次使用的时候, 都引入. 尝试1:创建 global.js 并且在其中定义   let a = 10 ...

  5. React全家桶入门

    http://blog.csdn.net/column/details/14545.html

  6. todo JVM笔记

    之前给自己定了很多计划,要学Dubbo,Netty,SSHM源码,Tomcat源码...这些基本浅尝辄止,很难继续研读,过不了多久就忘了. 觉得还是基础不够,所以决定把<JVM>.< ...

  7. nologin - 阻止非root用户登录系统

    描述 DESCRIPTION 如果存在文件 /etc/nologin, login(1) 将只允许root访问.其它用户的登录会遭到拒绝并且显示该文件中的内容给他们. 文件 FILES /etc/no ...

  8. 【原】cmdline传递参数 uboot-->kernel-->fs

    在uboot中设置bootargs环境变量,在kernel启动后cat /proc/cmdline可以看到bootargs的值. U-boot的环境变量值得注意的有两个: bootcmd 和boota ...

  9. flutter 基础组件

    TextWidget class TextWidget extends StatelessWidget { final TextStyle _textStyle = TextStyle( fontSi ...

  10. 最近关于Qt学习的一点碎碎念

    最近关于Qt学习的一点碎碎念 一直在使用Qt,但是最近对Qt的认识更加多了一些.所以想把自己的一些想法记录下来. Qt最好的学习资料应该是官方的参考文档了.对Qt的每一个类都有非常详细的介绍.我做了一 ...