【基础练习】【拓扑排序】codevs3294 车站分级题解
题目来源:NOIP2013 普及第四题
一条单向的铁路线上,依次有编号为1, 2, …, n的n个火车站。每一个火车站都有一个级别,最低为1级。现有若干趟车次在这条线路上行驶。每一趟都满足例如以下要求:假设这趟车次停靠了火车站x。则始发站、终点站之间全部级别大于等于火车站x的都必须停靠。
(注意:起始站和终点站自然也算作事先已知须要停靠的网站)
比如,下表是5趟车次的执行情况。当中。前4趟车次均满足要求,而第5趟车次因为停靠了3号火车站(2级)却未停靠途经的6号火车站(亦为2级)而不满足要求。
现有m趟车次的执行情况(所有满足要求),试推算这n个火车站至少分为几个不同的级别。
第一行包括2个正整数n, m,用一个空格隔开。
第i+1行(1≤i≤m)中,首先是一个正整数s_i(2≤s_i≤n),表示第i趟车次有s_i个停靠站;接下来有s_i个正整数,表示全部停靠站的编号,从小到大排列。每两个数之间用一个空格隔开。输入保证全部的车次都满足要求。
输出仅仅有一行,包括一个正整数,即n个火车站最少划分的级别数。
[Sample 1]
9 2
4 1 3 5 6
3 3 5 6
[Sample 2]
9 3
4 1 3 5 6
3 3 5 6
3 1 5 9
[Sample 1]
2
[Sample 2]
3
对于20%的数据。1 ≤ n, m ≤ 10;
对于50%的数据,1 ≤ n, m ≤ 100。
对于100%的数据。1 ≤ n, m ≤ 1000。
这道题目李晨说一看就是拓扑 我看了半天没看出来看了别人说才想明确⊙﹏⊙b汗 羞愧啊
基本思路是 对于每条线路 他中间的点 没有经过的级别一定严格小于经过的级别 因此每一个没有经过的点指向每一个经过的点连接一条边 这样构建一张图 比較稠密 在拓扑排序就可以 拓扑排序出来几层就分几级
写的代码參考了黄学长的 因此基本一样 但第一次尝试全WA 由于ans=0放错了位置 改动后WA了一半 事实上原因在这里(错误的代码):
while (1)
{
int top=0;
for (int i=1;i<=n;i++)
{
if (!r[i])
{
r[i]=-1;
top++;
for (int j=1;j<=n;j++)
if (e[i][j])
{
e[i][j]=0;
r[j]--;//maybe it is 0 now! 这里有可能产生了新的入度为0的点。而这个点本应该是下一层排序出来的
}
}
}
if (!top) break;
ans++;
也就是说 不能找到一个点处理一个 应该存起来集中处理
那么放代码
————————————————无责任切割线————————————————
由于是准备NOIP,图论的专题基本就到此为止了,当然之后也会穿插一些练习。
Tarjan缩点没学会,李晨说不要学了,于是临时放下。LCA可能还是要看一下,有时间还要尝试线段树平衡树(斜角四十五度仰望天空……)
下一个模块开数学吧 欧拉函数 逆元 组合数 这些都要学的
不知不觉博客的诗句积累了好多···整理了一下真是惊人啊
六一快乐尽管已经过去了 高考加油 准备搬楼 文化课也要加油 努力考清华【= =
——已而得舟,避诸洲,出北海。然后渡扬子江。入苏州洋,辗转四明、天台。以至于永嘉。
【基础练习】【拓扑排序】codevs3294 车站分级题解的更多相关文章
- 洛谷P1983车站分级题解
题目 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排 ...
- 动态规划 洛谷P4017 最大食物链计数——图上动态规划 拓扑排序
洛谷P4017 最大食物链计数 这是洛谷一题普及/提高-的题目,也是我第一次做的一题 图上动态规划/拓扑排序 ,我认为这题是很好的学习拓扑排序的题目. 在这题中,我学到了几个名词,入度,出度,及没有环 ...
- LG1983 「NOIP2013」车站分级 拓扑排序
问题描述 LG1983 题解 考虑建立有向边\((a,b)\),代表\(a\)比\(b\)低级. 于是枚举每一辆车次经过的车站\(x \in [l,r]\),如果不是车辆停靠的车站,则从\(x\)向每 ...
- NOIp2013 车站分级 【拓扑排序】By cellur925
题目传送门 我们注意到,题目中说:如果这趟车次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站x的都必须停靠.有阶级关系,满满的拓扑排序氛围.但是,如果我们按大于等于的关系连,等于的情况就 ...
- NOIP 车站分级 (luogu 1983 & codevs 3294 & vijos 1851) - 拓扑排序 - bitset
描述 一条单向的铁路线上,依次有编号为 1, 2, ..., n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...
- P1983 车站分级 思维+拓扑排序
很久以前的一道暑假集训的题,忘了补. 感觉就是思维建图,加拓扑排序. 未停靠的火车站,必然比停靠的火车站等级低,就可以以此来建边,此处注意用vis来维护一下,一个起点和终点只建立一条边,因为不这样的话 ...
- 算法与数据结构基础 - 拓扑排序(Topological Sort)
拓扑排序基础 拓扑排序用于解决有向无环图(DAG,Directed Acyclic Graph)按依赖关系排线性序列问题,直白地说解决这样的问题:有一组数据,其中一些数据依赖其他,问能否按依赖关系排序 ...
- 【题解】 [HNOI2015]菜肴制作 (拓扑排序)
题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴 ...
- 洛谷 P3975 / loj 2102 [TJOI2015] 弦论 题解【后缀自动机】【拓扑排序】
后缀自动机入门. 题目描述 为了提高智商,ZJY 开始学习弦论. 这一天,她在<String theory>中看到了这样一道问题:对于一个给定的长度为 \(n\) 的字符串,求出它的第 \ ...
随机推荐
- 简单绕过Chrome密码查看逻辑,查看浏览器已保存的密码
简单绕过Chrome密码查看逻辑,查看浏览器已保存的密码 利用场景: 同事或朋友外出有事,电脑未锁屏离开座位.可以利用这一间隙,查看Ta在Chrome浏览器上保存的账号密码 查看逻辑: 当我们要查 ...
- C# Process获取当前进程信息
1.获取当前进程信息整理 Process.GetCurrentProcess(),返回当前程序的进程对象. Process cur = Process.GetCurrentProcess(); //当 ...
- pkg-config原理及用法
原文 https://blog.csdn.net/luotuo44/article/details/24836901 我们在用第三方库的时候,经常会用到pkg-config这个东西来编译程序.那pk ...
- [转]Redis作者:深度剖析Redis持久化
From : http://www.iteye.com/news/24675 Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等 ...
- mac下的docker的Docker.raw占用空间很大?
如图所示,60G,我的天呢? 其实这个只是系统分配给docker的逻辑硬盘大小,应该是指docker最大可用的硬盘空间,实际占用没有这么大 实际占用大小: 另外: 参考:https://github. ...
- 深入JVM系列(二)之GC机制、收集器与GC调优
一.回想JVM内存分配 须要了解很多其它内存模式与内存分配的,请看 深入JVM系列(一)之内存模型与内存分配 1.1.内存分配: 1.对象优先在EDEN分配 2.大对象直接进入老年代 3.长期存活的 ...
- hyper-v 尝试更改 状态时 应用程序遇到错误 无法初始化
刚还原了一个问题,现在 又来一个: 让我崩溃的微软 hyper-v.这次错误 提示也没了. http://social.technet.microsoft.com/Forums/de-DE/751b2 ...
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\AllowRemoteConnection
ylbtech-Error-WebForm: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\aspnet_state\Parameters\ ...
- go语言之进阶篇拷贝文件案例
1.文件案例:拷贝文件 示例: package main import ( "fmt" "io" "os" ) func main() { ...
- html与css架构的一点体验
css本身,可以说是一门非常简单而容易入门的语言.制作一个页面,或者制作一个小企业站,对于css的要求都是非常低的.只要熟悉语法,通过英文单词的含义猜,都基本可以拼出一套样式.更何况市面上还有各种各样 ...