车站分级

题目

车站分级


解析

拓扑排序,毫无难度
唯一难的是建图

scanf("%d",&t);
for(int j=1;j<=t;j++)scanf("%d",&o[j]);
k=o[1]+1;
for(int j=2;j<=t;j++)
{while(k!=o[j]){for(int l=1;l<=t;l++)if(!ok[k][o[l]])ok[k][o[l]]=1,add(k,o[l]),in[o[l]]++;++k;}++k;
}

然后就AC了????
…………………………………………………………………………………………………………

code:

#include<cstdio>
#include<queue>
using namespace std;
int k,n,m,head[1010],a[1000010],b[1000010],nxt[1000010],ans[1010],in[1010],tot=0,t,o[1010];
queue <int> c;
bool ok[1010][1010];
void add(int x,int y)
{a[++tot]=x,b[tot]=y,nxt[tot]=head[x],head[x]=tot;
}
void topo()
{while(!c.empty()){k=c.front(),c.pop();for(int i=head[k];i;i=nxt[i]){if(ans[b[i]]<=ans[k])ans[b[i]]=ans[k]+1;in[b[i]]--;if(in[b[i]]==0)c.push(b[i]);}}return;
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){scanf("%d",&t);for(int j=1;j<=t;j++)scanf("%d",&o[j]);k=o[1]+1;for(int j=2;j<=t;j++){while(k!=o[j]){for(int l=1;l<=t;l++)if(!ok[k][o[l]])ok[k][o[l]]=1,add(k,o[l]),in[o[l]]++;++k;}++k;}//蜜汁建图}for(int i=1;i<=n;i++)if(in[i]==0)c.push(i),ans[i]=1;topo();for(int i=1;i<=n;i++)if(ans[0]<ans[i])ans[0]=ans[i];//求最大值就过了printf("%d",ans[0]);return 0;
}

P1983【车站分级】相关推荐

  1. P1983 车站分级(拓扑排序)

    车站分级 题目传送门 解题思路 这题就是用拓扑排序分层 首先是建图 每进行一次输入,就将没有停靠的站与停靠的站都建立一条边 因为题目样例不怎么大,所以可以用邻接矩阵 for(int i=1;i< ...

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

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

  3. P1983 车站分级

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

  4. luogu P1983 车站分级

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

  5. 洛谷 P1983 车站分级

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

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

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

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

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

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

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

  9. 洛谷 P1983 车站分级

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

  10. 洛谷P1983 车站分级

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

最新文章

  1. MIS开发中C/S模式与B/S模式的结合策略
  2. c++中vector的用法详解
  3. 拒绝亡羊补牢!SQL Server服务器安全防护!
  4. css动画之旅--弹性菜单效果
  5. Python之调用JS的方式
  6. 庖丁解牛TLD(二)——初始化工作(为算法的准备)
  7. Node.js Stream - 基础篇
  8. Okhttp 源码解析
  9. 什么是REST API?
  10. vue 拖拽(笔记)
  11. linux新手常用命令
  12. VMWare学习总结(2)——VMware中三种网络连接的区别
  13. python输出一首诗_Python:如何打印我的简单诗
  14. 近 10 年新秀编程语言大 PK,Pick 它!
  15. 有同学问我:Fetch 和 Ajax 有什么区别?
  16. 汽车电子功能安全标准ISO26262解析(六)——硬件集成测试
  17. vimgrep 查找光标下单词并打开quickfix
  18. 语义分析(输出四元式)
  19. git如何选择性合并_git - 如何挑选一系列提交并合并到另一个分支?
  20. ubuntu14.04安装ANSYS14.5的血泪史

热门文章

  1. 美国“新蛋”成都孵化新公司
  2. 饿了吗 系统_阿里反击开始!飞猪“100亿”补贴来袭,美团挺得住吗?
  3. Error: Error while compiling statement: FAILED: SemanticException Unable to load data to destination
  4. 程序员——伤不起的三十岁
  5. 深入渗透流行趋势 安防行业发展机遇多
  6. 你的产品是否符合基本的商业逻辑?
  7. FT61F020/FT61F021A/FT61F022A/FT61F023−ab是辉芒微电子A/D型8位系列单片机
  8. 光学efl_Zemax和光学的一些整理
  9. c语言 字符串数组 将字符串中的小写字母转换为大写
  10. AI 驱动的机器人在没有人类帮助的情况下开始寻找新材料