[NOIP2013 普及组] 车站分级 题解
题目传送门
分析题目:
说实话,刚刚看到这道题我第一反应是懵的(这车站咋还有级别呢)
主要是这些级别还有关系……
不过多看了几遍,终于灵光一闪——
每辆车都得停靠 ≥ \ge ≥ 第一次级别的车站
换句话说,不停靠的车站一定小于左端点
也就是说,我们可以建一个 V O E 网 VOE网 VOE网 ,停靠站点指向未停靠站点,再用来拓扑排序,最后的答案运用类似 d p dp dp 的方法取最大值
那么这道题就是变形的拓扑排序!!
那么我们就来看看样例1:
9 2
4 1 3 5 6
3 3 5 6
答案:
2
那么我们就来用图论画图神器把这个VOE网画出来试试
图中“x→y”表示x级别大于y
OK,图已经画完了,现在我们需要分析一下,答案为什么是2?
文字解说:
因为途经的所有站点(除了起始站与终点站),已知3号节点一定比2号节点高,所以3和2一定不是一个级别,3和5也一样。所以最少级别的示意图如下:
(S表示停,G表示走)
站点:1 2 3 4 5 6
等级:1 0 1 0 1 1 (共两种)
一号:S G S G S S
二号: S G S S
好啦,看看代码
#include<bits/stdc++.h>
#define MAXN 1005
using namespace std;
int ans;
int n,m