P1983【车站分级】
车站分级
题目
车站分级
解析
拓扑排序,毫无难度
唯一难的是建图
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【车站分级】相关推荐
- P1983 车站分级(拓扑排序)
车站分级 题目传送门 解题思路 这题就是用拓扑排序分层 首先是建图 每进行一次输入,就将没有停靠的站与停靠的站都建立一条边 因为题目样例不怎么大,所以可以用邻接矩阵 for(int i=1;i< ...
- 洛谷 P1983 车站分级(拓扑排序)
https://www.luogu.com.cn/problem/P1983 思路 对于每一趟车,将其经过的车站中,停靠的和不停靠的连一条边,注意边的去重,要双向标记,不然有个点会超时,这样拓扑排序递 ...
- P1983 车站分级
题面:https://www.luogu.org/problem/P1983 首先我们来谈一谈邻接表+dfs: 假设有一辆车经过三个车站ai,aj,ak(ai,aj,ak车站编号递增) 那么在ai,a ...
- luogu P1983 车站分级
题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...
- 洛谷 P1983 车站分级
嗯... 听说这是一道存图+拓扑排序的题,但是看了一晚上好像只看出存图来.... 自己太蒟蒻,然后没办法,就.....就借用了Mr Kevin的代码和思路,然后自己做了一些了解... (并且现在自己对 ...
- 洛谷P1983 车站分级 拓扑排序
题目链接:https://www.luogu.com.cn/problem/P1983 此题是用拓扑排序求层数,将等级高的点连向等级的点,连成的图用拓扑排序看一下多少层,即答案. 代码如下 #incl ...
- 洛谷P1983 车站分级(拓扑排序)
[题目描述] 一条单向的铁路线上,依次有编号为 1 , 2 , - , n 1,2,\dots ,n 1,2,-,n的 n n n个火车站.每个火车站都有一个级别,最低为 1 1 1级.现有若干趟车次 ...
- 洛谷P1983 车站分级(图的建立)
题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n的 n个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 ...
- 洛谷 P1983 车站分级
题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了 ...
- 洛谷P1983 车站分级
这题有三种做法 1.O(nm2)1.O(nm2)1.O(nm^2) 488ms / 9.61MB / 0.68KB 不用讲,直接贴代码 #include<bits/stdc++.h> us ...
最新文章
- MIS开发中C/S模式与B/S模式的结合策略
- c++中vector的用法详解
- 拒绝亡羊补牢!SQL Server服务器安全防护!
- css动画之旅--弹性菜单效果
- Python之调用JS的方式
- 庖丁解牛TLD(二)——初始化工作(为算法的准备)
- Node.js Stream - 基础篇
- Okhttp 源码解析
- 什么是REST API?
- vue 拖拽(笔记)
- linux新手常用命令
- VMWare学习总结(2)——VMware中三种网络连接的区别
- python输出一首诗_Python:如何打印我的简单诗
- 近 10 年新秀编程语言大 PK,Pick 它!
- 有同学问我:Fetch 和 Ajax 有什么区别?
- 汽车电子功能安全标准ISO26262解析(六)——硬件集成测试
- vimgrep 查找光标下单词并打开quickfix
- 语义分析(输出四元式)
- git如何选择性合并_git - 如何挑选一系列提交并合并到另一个分支?
- ubuntu14.04安装ANSYS14.5的血泪史
热门文章
- 美国“新蛋”成都孵化新公司
- 饿了吗 系统_阿里反击开始!飞猪“100亿”补贴来袭,美团挺得住吗?
- Error: Error while compiling statement: FAILED: SemanticException Unable to load data to destination
- 程序员——伤不起的三十岁
- 深入渗透流行趋势 安防行业发展机遇多
- 你的产品是否符合基本的商业逻辑?
- FT61F020/FT61F021A/FT61F022A/FT61F023−ab是辉芒微电子A/D型8位系列单片机
- 光学efl_Zemax和光学的一些整理
- c语言 字符串数组 将字符串中的小写字母转换为大写
- AI 驱动的机器人在没有人类帮助的情况下开始寻找新材料