题面

题解

不难想到拓扑排序

于是每一个等级高的向等级低的连一条边

考虑拓扑排序过程中的分层

对于每个点进行分层

于是答案就是这些点中的最大层数

然后就会RE

发现我们多连了一些重复的边

用一个标记数组记录两个点之间是否连边即可

代码

#include <bits/stdc++.h>

using namespace std;

inline int gi()
{
int f = 1, x = 0; char c = getchar();
while (c < '0' || c > '9') {if (c == '-') f = -1; c = getchar();}
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return f * x;
} const int maxn = 1003; int n, m, ans, g[maxn][maxn]/*输入数组*/;
int viss[maxn], b[maxn][maxn]/*标记是否连边*/, ceng[maxn]/*分层*/, in[maxn]/*统计入度*/;
vector <int> vv[maxn];//存图 inline void topsort()//拓扑排序
{
queue <int> q;
for (int i = 1; i <= n; i+=1) if (!in[i]) q.push(i), ceng[i] = 1;//初始化队列+分层
while (!q.empty())
{
int u = q.front(); q.pop();
int len = vv[u].size();
for (int i = 0; i < len; i+=1)
{
int v = vv[u][i];
if (!(--in[v])) ceng[v] = ceng[u] + 1/*分层*/, q.push(v);
}
}
for (int i = 1; i <= n; i+=1) ans = max(ans, ceng[i]);//计算答案
} int main()
{
n = gi(), m = gi();
for (int i = 1; i <= m; i+=1)
{
g[i][0] = gi();
memset(viss, 0, sizeof(viss));//初始化
for (int j = 1; j <= g[i][0]; j+=1)
{
g[i][j] = gi();
viss[g[i][j]] = 1;//标记已经过该站点
}
for (int j = g[i][1]; j <= g[i][g[i][0]]; j+=1)
{
if (!viss[j])//没有经过该站点,说明该站点等级比经过的站点等级低
{
for (int k = 1; k <= g[i][0]; k+=1)
{
if (!b[j][g[i][k]])//没有边
{
vv[j].push_back(g[i][k]);//存图
b[j][g[i][k]] = 1;//标记有边
++in[g[i][k]];//统计入度
}
}
}
}
}
topsort();
printf("%d\n", ans);//输出答案
return 0;
}

题解【洛谷P1983】[NOIP2013]车站分级的更多相关文章

  1. 【洛谷P1983】车站分级

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

  2. 洛谷P1983车站分级

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

  3. 洛谷P1983 车站分级

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

  4. 题解 洛谷P5018【对称二叉树】(noip2018T4)

    \(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...

  5. 题解 洛谷 P3396 【哈希冲突】(根号分治)

    根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...

  6. 题解-洛谷P5410 【模板】扩展 KMP(Z 函数)

    题面 洛谷P5410 [模板]扩展 KMP(Z 函数) 给定两个字符串 \(a,b\),要求出两个数组:\(b\) 的 \(z\) 函数数组 \(z\).\(b\) 与 \(a\) 的每一个后缀的 L ...

  7. 题解-洛谷P4229 某位歌姬的故事

    题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...

  8. 题解-洛谷P4724 【模板】三维凸包

    洛谷P4724 [模板]三维凸包 给出空间中 \(n\) 个点 \(p_i\),求凸包表面积. 数据范围:\(1\le n\le 2000\). 这篇题解因为是世界上最逊的人写的,所以也会有求凸包体积 ...

  9. 题解-洛谷P4859 已经没有什么好害怕的了

    洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...

  10. 题解-洛谷P5217 贫穷

    洛谷P5217 贫穷 给定长度为 \(n\) 的初始文本 \(s\),有 \(m\) 个如下操作: \(\texttt{I x c}\),在第 \(x\) 个字母后面插入一个 \(c\). \(\te ...

随机推荐

  1. StringBuilder的性能

    1.新创建一个对象   long startTimeA = System.currentTimeMillis();   StringBuilder sb = null;  for (int i = 1 ...

  2. Redis 安装 (未)

    Redis 安装步骤 1. 下载地址 2.  版本选择 3.  配置主要参数 4.  关联操作

  3. 【机器学习】使用CNN神经网络实现对图片分类识别及模型转换

    仅做记录,后面慢慢整理 训练函数: from skimage import io, transform # skimage模块下的io transform(图像的形变与缩放)模块 import glo ...

  4. composer封装dd函数

    1.安装composer,本人用的phpstudy,打开php扩展php_openssl 2.切换到www目录下 cmd 命令 composer 第一个就是我们要找的 3.运行composer req ...

  5. android中常用的布局管理器(二)

    接上篇博客 (3)LinearLayout     线性布局管理器 线性布局管理器是将放入其中的组件按照垂直或水平方向来布局,每一行或每一列只能放一个组件,并且不会换行,当组件排列到窗体的边缘后,后面 ...

  6. 请求筛选模块被配置为拒绝包含双重转义序列的请求(.net core程序的‘web.config’调整)

    之前项目有一个静态文件特殊字符转义的报错(+变为 %2B),老是显示404  请求筛选模块被配置为拒绝包含双重转义序列的请求  .网上的大多数解决方案都是一下: https://www.cnblogs ...

  7. VSCode添加git bash作为默认终端

    VSC添加git bash作为默认终端的settings.json添加 { "terminal.integrated.shell.windows": "D:\\Progr ...

  8. gulp常用插件之gulp-rev-rewrite使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-rev-rewrite这是一款重写对由gulp-rev修订的资产的引用. 更多使用文档请点击访问gulp-rev-rewrite工具官网 ...

  9. 关于Comparable和Comparator那些事

    在实际项目开发过程中,我们经常需要对某个对象或者某个集合中的元素进行排序,常用的两种方式是实现某个接口.常见的可以实现比较功能的接口有Comparable接口和 Comparator接口,那么这两个又 ...

  10. win10中安装与配置maven

    原文链接:https://www.cnblogs.com/wkrbky/p/6350334.html Maven安装配置(Windows10) 想要安装 Apache Maven 在Windows 系 ...