luogu1980 车站分级】的更多相关文章

题目大意 一些火车站排成一行.给出一些火车的停靠站情况,要求对每一个火车,其经过且不停靠的站的级别比它任意停靠的站的级别小.问所有车站最少需要多少个级别. 题解 不要只看到这道题的背景设立在一个区间上,就只想线段上的动规与贪心.由火车停靠站的情况可以得到不同站与不同站之间的级别满足偏序关系,这样就可以建立拓扑图求最长路径即可. 普通建图$O(nm)$,要注意重边的情况,否则会MLE. #include <cstdio> #include <cstring> #include <…
P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao)谐(zha)… 题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级 别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车 次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站 x 的都必须停靠.(注 意…
车站分级 题目链接 首先,可以发现火车停靠站点的大小是没有什么规律的, 火车可以停靠在级别<=当前级别的站点,必须停靠在级别>=当前最高级别的站点 但是所有没有被停靠的站点级别一定比所有被停靠了的站点级别低 于是就可以据此建一个DAG,拓扑排序或记搜即可 (O(n^3)建图居然过了) #include<iostream> #include<cstring> #include<cstdio> #include<bitset> using names…
[NOIP2013 普及组]车站分级 一.题目 [NOIP2013 普及组]车站分级 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决: 0 [提交][状态][讨论版] 题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站 x 的都必须停靠.(注意:起始站和终点站自然也算作事先已…
洛谷\(P1983\)车站分级(拓扑排序) 目录 题目描述 题目分析 思路分析 代码实现 题目描述 题目在洛谷\(P1983\)上 ​ 题目: 一条单向的铁路线上,依次有编号为 \(1, 2, -, n1,2,-,n\)的 \(n\)个火车站.每个火车站都有一个级别,最低为 11 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 \(x\),则始发站.终点站之间所有级别大于等于火车站\(x\) 的都必须停靠.(注意:起始站和终点站自然也算作事先已知需要停靠的站点…
题目链接 https://www.luogu.org/problemnew/show/P1983 题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n的 n个火车站.每个火车站都有一个级别,最低为1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站x 的都必须停靠.(注意:起始站和终点站自然也算作事先已知需要停靠的站点) 例如,下表是5 趟车次的运行情况.其中,前4 趟车次均满足要求,而第 5趟车次由于停靠了…
题目 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排序即可 代码 #include <bits/stdc++.h> #pragma GCC optimize(2) #pragma GCC optimize(3) using namespace std; int in[199091], lin[100100], dep[100100], data[1…
题目传送门 我们注意到,题目中说:如果这趟车次停靠了火车站 x,则始发站.终点站之间所有级别大于等于火车站x的都必须停靠.有阶级关系,满满的拓扑排序氛围.但是,如果我们按大于等于的关系连,等于的情况就会连双向边,这不利于我们在有向无环图中(DAG)进行拓扑排序.于是我们不妨换一种思路,将所有小于当前火车站级别的车站向输入的车站序列间连一条有向边.之后边拓扑排序边更新车站级数即可. 注意建图的细节过程.首先对于每个车次,我们应该从起点出发终点结束,也就是代码中的w[1]和w[n]:其次由于有很多车…
妈蛋这道普及组水(神)题搞了我非常久. 一. 首先一个非常显然的事情就是每一个火车告诉了站与站之间的等级关系,所以拓扑求最长路. 可是发现暴力建边的话最坏能够达到500*500,所以时间复杂度有O(MN2)≈2.5∗108,常数相当小. .数据水成狗,所以绝对能够过的. 二. 所以我就想到了bitset,把每辆火车做成一个长N的布尔向量.经过为1,不经过为0,第一个车站的左边和最后一个车站的右边补1,. 然后对于每一个车站,把全部它所在的位为1的向量都&起来,然后扫一遍向量连边. 这样做的时间复…
问题描述 LG1983 题解 考虑建立有向边\((a,b)\),代表\(a\)比\(b\)低级. 于是枚举每一辆车次经过的车站\(x \in [l,r]\),如果不是车辆停靠的车站,则从\(x\)向每个停靠了的车站连边. 拓扑排序,建立分层图,搞出最大的层数即可. \(\mathrm{Code}\) #include<bits/stdc++.h> using namespace std; template <typename Tp> void read(Tp &x){ x=…