题目传送门

我们注意到,题目中说:如果这趟车次停靠了火车站 x,则始发站、终点站之间所有级别大于等于火车站x的都必须停靠。有阶级关系,满满的拓扑排序氛围。但是,如果我们按大于等于的关系连,等于的情况就会连双向边,这不利于我们在有向无环图中(DAG)进行拓扑排序。于是我们不妨换一种思路,将所有小于当前火车站级别的车站向输入的车站序列间连一条有向边。之后边拓扑排序边更新车站级数即可。

注意建图的细节过程。首先对于每个车次,我们应该从起点出发终点结束,也就是代码中的w[1]和w[n];其次由于有很多车次 ,所以可能发生建了重边的情况,所以另需要数组来记录边 有没有被连过。

在进行拓扑排序时,将一个pair插入队列,入度为0的点一定级别最低 ,它为1,对于每个从它出发得到的点,我们把它的级别+1即可。

同杂务一题一样,拓扑保证最小性质,而取max保证考虑全面。

Code

 #include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<utility> using namespace std; int n,m,tot,ans;
int head[],du[],w[],vis[];
bool jud[][];
struct node{
int to,next;
}edge[]; void add(int x,int y)
{
edge[++tot].to=y;
edge[tot].next=head[x];
head[x]=tot;
} void topo()
{
queue<pair<int,int> >q;
for(int i=;i<=n;i++)
if(!du[i]) q.push(make_pair(i,));
while(!q.empty())
{
int u=q.front().first;
int val=q.front().second;q.pop();
for(int i=head[u];i;i=edge[i].next)
{
int v=edge[i].to;
if(--du[v]==) q.push(make_pair(v,val+));
ans=max(ans,val+);
}
}
} int main()
{
scanf("%d%d",&n,&m);
for(int p=;p<=m;p++)
{
memset(vis,,sizeof(vis));
memset(w,,sizeof(w));
int opt=;
scanf("%d",&opt);
for(int i=;i<=opt;i++)
scanf("%d",&w[i]),vis[w[i]]=;
for(int i=w[];i<=w[opt];i++)
{
if(!vis[i])
for(int j=;j<=opt;j++)
if(!jud[i][w[j]]) add(i,w[j]),du[w[j]]++,jud[i][w[j]]=;
}
}
/* for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
printf("%d %d :=%d\n",i,j,jud[i][j]);
return 0;
*/ topo();
printf("%d",ans);
return ;
}
//判断边有没有连重

NOIp2013 车站分级 【拓扑排序】By cellur925的更多相关文章

  1. LG1983 「NOIP2013」车站分级 拓扑排序

    问题描述 LG1983 题解 考虑建立有向边\((a,b)\),代表\(a\)比\(b\)低级. 于是枚举每一辆车次经过的车站\(x \in [l,r]\),如果不是车辆停靠的车站,则从\(x\)向每 ...

  2. luogu1983 车站分级 (拓扑排序)

    对每趟车建一个虚点p,对于不停车的x,连边(x,p,1):对于停车的y,连边(p,y,0)有一条边(a,b,l)就是说b-a>=l由于题目保证一定能走,直接拓扑序dp算最大的就行了 #inclu ...

  3. NOIP2013pj车站分级[拓扑排序]

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

  4. noip车站分级 拓扑排序

    题目传送门 这道题呢 每次输入一段数就把1~n里面没有在这组数里面的数和他们连一波 表示这些数比他们等级低 然后就搞一搞就好了哇 #include<cstdio> #include< ...

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

    Code: #include<cstdio> #include<queue> #include<algorithm> #include<cstring> ...

  6. P1983 车站分级[拓扑]

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

  7. 题解【洛谷P1983】[NOIP2013]车站分级

    题面 题解 不难想到拓扑排序 于是每一个等级高的向等级低的连一条边 考虑拓扑排序过程中的分层 对于每个点进行分层 于是答案就是这些点中的最大层数 然后就会RE 发现我们多连了一些重复的边 用一个标记数 ...

  8. [NOIP2013]车站分级 解题报告

    妈蛋这道普及组水(神)题搞了我非常久. 一. 首先一个非常显然的事情就是每一个火车告诉了站与站之间的等级关系,所以拓扑求最长路. 可是发现暴力建边的话最坏能够达到500*500,所以时间复杂度有O(M ...

  9. noip2013 车站分级

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

随机推荐

  1. java-过滤器(Filter)

    在javaweb开发中,项目中都会包含一些过滤器(Filter),主要用于web服务器对资源的管理控制,如静态资源文件.jsp页面访问等.我们可以使用过滤器实现一些特殊的功能,如常见的过滤敏感词汇(替 ...

  2. js的基础(平民理解的执行上下文/调用堆栈/内存栈/值类型/引用类型)

    与以前的切图比较,现在的前端开发对js的要求似乎越来越高,在开发中,我们不仅仅是要知道如何运用现有的框架(react/vue/ng), 而且我们对一些基础的知识的依赖越来越大. 现在我们就用平民的方法 ...

  3. Python开发的一个IDE推荐,Sublime Text 3

    Sublime Text 3 官网下载地址为, LINK. 目前最新版本是3114. 这里转载泱泱长空的授权文件(注册码)文章[1],将几个可以用的注册码列举如下: 补充:2016.05 最近经过测试 ...

  4. arcgis安装路径的获得

    //Get the ArcGIS install location string sInstall = ESRI.ArcGIS.RuntimeManager.ActiveRuntime.Path; / ...

  5. WebLogic中"域"的概念

    WebLogic 版权声明:本文为博主原创文章,未经博主允许不得转载. WebLogic Server中的域是逻辑上相关的一组 WebLogic Server 资源,可以作为一个单元进行管理.一个域中 ...

  6. libpython2.7.so.1.0: cannot open shared object file: No such file or directory

    解决方法如下: 1.编辑      vi /etc/ld.so.conf  如果是非root权限帐号登录,使用 sudo vi /etc/ld.so.conf  添加上python2.7的lib库地址 ...

  7. 创立一个站点的前前后后(起因,域名,云平台,备案,CDN等等)(1)

    起因 写完<完美软件开发:方法与逻辑>这书后,原本想继续写书的,可出来參加了些社区活动后,我发现我写的书大家评价还行.但事实上不太理解.而接下来想写的书更加抽象点.准备叫<管理的解析 ...

  8. Leetcode:search_insert_position

    一.     题目 给定一个数组和要插入数的大小.求插入的位置. 二.     分析 太水,直接扫描.过--. class Solution { public: int searchInsert(in ...

  9. Android ListView异步载入图片乱序问题,原因分析及解决方式

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/45586553 在Android全部系统自带的控件其中,ListView这个控件算是 ...

  10. 【Mongodb教程 第十课 】MongoDB 备份

    MongoDB 数据转储 创建备份MongoDB中的数据库,应该使用mongodump命令.此命令将服务器的所有数据转储到转储目录.有许多可供选择,通过它可以限制的数据量或创建备份您的远程服务器. 语 ...