题面

题解

不难想到拓扑排序

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

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

对于每个点进行分层

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

然后就会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;
}

最新文章

  1. 【开源】.Net 动态脚本引擎NScript
  2. MySQL+Amoeba实现数据库主从复制和读写分离
  3. 基于Ruby的watir-webdriver自动化测试方案与实施(三)
  4. Canvas 实现图片剪切
  5. 获取设备IMEI ,手机名称,系统SDK版本号,系统版本号
  6. UnicodeDecodeError: &#39;utf8&#39; codec can&#39;t decode byte 0xce in position 47: invalid continuation byte
  7. CCSprite setTextureRect 的坐标的坑
  8. web端测试和移动端测试的区别小记
  9. ppt打不出中文
  10. uri中为什么本地文件file后面跟三个斜杠, http等协议跟两个斜杠?
  11. 类型&lt;T&gt; where T:class的用法
  12. 用Python和Django实现多用户博客系统(二)——UUBlog
  13. 使用EMMET中的小坑
  14. 浮动层固定兼容IE6 position:fixed的最佳解决方案
  15. Java IO学习笔记四
  16. Nagios 监控系统架构
  17. I.MX 6UL与6ULL应用领域区别
  18. java --Integer 学习
  19. JVM方法调用过程
  20. redis 在 php 中的应用

热门文章

  1. idea 普通项目 改成 maven项目
  2. 通过/dev/mem操作物理内存
  3. ECMAScript 6基础
  4. idea中MavenWeb项目不能创建Servlet的解决办法
  5. WebDev.WebServer20.exe应用程序错误
  6. 电脑和手机上常用apk或Pc软件的重要目录或文件或文件夹路径
  7. 【easyui】treegrid逐级加载源码
  8. cat基础用法
  9. #4864. [BeiJing 2017 Wc]神秘物质 [FHQ Treap]
  10. django cookie session 自定义分页