思路

由题可知,在一趟车次的区间内,停靠的站点的等级恒大于不停靠的站点。

因此,对于每一趟车次的区间,给所有停靠的站点向所有不停靠的站点两两连有向边,然后求图中最长的路径长度,就能得到答案。

实现

因为可能出现重边,而且\(n\le1000\),所以在处理车次连边的时候使用邻接矩阵,再改成邻接表。

之后将入度为0的节点的等级设置为1(其实应该反着来,这样分出来的等级更符合逻辑,但是我是正着来的),遍历整张图。对于每一个节点,其等级为指向它的节点度数的最大值+1,即$$\large level_v=max(u)+1,(u,v)\in E$$

考虑对图进行拓扑排序,然后递推。然后我悲催地发现我已经把拓扑排序忘光了

代码

#include <cstdio>
#include <cstring>
#define N 1005
#define max(x,y) ((x)>(y)?(x):(y))
int s[N];
int u[N];
int f[N][N];
struct node
{
int lvl,in,out;
int nx[N];
} a[N];
int a2[N];
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
a[i].lvl=1;
for(int i=1;i<=m;i++)
{
memset(s,0,sizeof(s));
int l;
scanf("%d",&l);
for(int j=1;j<=l;j++)
{
scanf("%d",&u[j]);
s[u[j]]=1;
}
for(int j=u[1];j<=u[l];j++)
if(!s[j])
for(int k=1;k<=l;k++)
f[u[k]][j]=1;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(f[i][j])
{
a[i].nx[++a[i].out]=j;
a[j].in++;
}
int cnt=0;
for(int i=1;i<=n;i++)
if(!a[i].in)
a2[++cnt]=i;
for(int h=1,t=cnt;h<=t;h++)
for(int k=1;k<=a[a2[h]].out;k++)
if(!--a[a[a2[h]].nx[k]].in)
a2[++t]=a[a2[h]].nx[k];
for(int i=1;i<=n;i++)
{
int k=a2[i];
for(int j=1;j<=a[k].out;j++)
a[a[k].nx[j]].lvl=max(a[a[k].nx[j]].lvl,a[k].lvl+1);
}
int ans=0;
for(int i=1;i<=n;i++)
ans=max(ans,a[i].lvl);
printf("%d",ans);
}

很冗杂凑合看吧

洛谷P1983 [NOIP2013 普及组] 车站分级 题解的更多相关文章

  1. 洛谷——P1980 [NOIP2013 普及组] 计数问题

    题目描述 试计算在区间 11 到 nn的所有整数中,数字x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到1111中,即在 1,2,3,4,5,6,7,8,9,10,111,2, ...

  2. [NOIp2013普及组]车站分级

    思路: 对于每一趟车,将区间内所有经停的站和所有未经停的站连一条边,表示前者优先级一定高于后者,然后用Kahn跑一遍拓扑排序即可.然而这样会创造大量多余的边,会TLE1个点.考虑一种优化:因为每趟车本 ...

  3. Noip2013(普及组) 车站分级

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

  4. 动态规划 洛谷P1048 [NOIP2005 普及组] 采药

    洛谷P1048 [NOIP2005 普及组] 采药 洛谷的一个谱架-的题目,考的是01背包问题,接下来分享一下我的题解代码. AC通过图: 我的代码: 1 //动态规划 洛谷P1048 [NOIP20 ...

  5. 求最长子序列(非连续)的STL方法 - 洛谷P1020 [NOIP1999 普及组] 导弹拦截

    先给出例题:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 大佬题解:P1020 [NOIP1999 普及组] 导弹拦截 - 洛谷 ...

  6. 洛谷 P1045 & [NOIP2003普及组] 麦森数

    题目链接 https://www.luogu.org/problemnew/show/P1045 题目大意 本题目的主要意思就是给定一个p,求2p-1的位数和后500位数. 解题思路 首先看一下数据范 ...

  7. 洛谷P1077 [NOIP2012普及组]摆花 [2017年四月计划 动态规划14]

    P1077 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能 ...

  8. 洛谷 1067 NOIP2009 普及组 多项式输出

    [题解] 一道简单的模拟题.需要判一些特殊情况:第一项的正号不用输出,x的一次项不用输出指数,系数为0的项不用输出等等,稍微细心一下就好. #include<cstdio> #includ ...

  9. [洛谷P1062/NOIP2006普及组] 数列

    首先题面是这样的: 给定一个正整数 k(3≤k≤15) ,把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当 k=3 时,这个序列是: 1,3,4,9,10,12,13,- ...

  10. [洛谷P1095]NOIP2007 普及组T3 守望者的逃离

    问题描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会 ...

随机推荐

  1. GodoOS 入选 Gitee 最有价值开源项目

    2024年11月1日,GodoOS荣耀地入选了GVP--Gitee最有价值开源项目.在GVP平台收录的418个杰出项目中,GodoOS作为唯一一款用GO语言开发的.维护中的跨平台webOS的桌面应用, ...

  2. 基本ROP

    ret2text [NewStarCTF 2023 公开赛道]ret2text (64) execve本身并不是一个后门函数. 实际上,execve是一个标准的系统调用函数,用于在 Linux和类 U ...

  3. 销讯通CRM客户关系管理系统的功能拆分

    随着技术的发展,CRM系统(客户关系管理)成为企业不可或缺的工具,本文从医药行业角度简要谈谈CRM系统的功能. 从业务的理解来说,从医药行业来说,CRM客户管理系统的有以下几部分功能: 01 客户的分 ...

  4. Nuxt.js 应用中的 afterResponse 事件钩子

    title: Nuxt.js 应用中的 afterResponse 事件钩子 date: 2024/12/6 updated: 2024/12/6 author: cmdragon excerpt: ...

  5. 《前端运维》一、Linux基础--12网络

    这是linux部分的最后一篇内容,我们一起来学习下Linux网络. 我们先看些命令吧: ifconfig,查看与配置网络状态. netstat,查询网络状态,常用选项如下: -t,列出TCP协议端口 ...

  6. 在.NET Core中使用异步多线程高效率的处理大量数据的最佳实践

    目录 一.引言 二.假设场景 三.解决方案 四.示例代码 一.引言 处理大量数据是一个常见的需求,传统的同步处理方式往往效率低下,尤其是在数据量非常大的情况下.本篇将介绍一种高效的多线程异步处理大数据 ...

  7. 【前端】解决盒子被撑大问题 box-sizing

    设置 box-sizing:border-box(原本的默认值为:content-box) box-sizing: content-box;/*盒子宽度=CSS中设置的width+border+pad ...

  8. 『玩转Streamlit』--集成Plotly

    之前介绍了如何在Streamlit App中使用Matplotlib库来绘图. 本篇介绍 Steamlit结合Poltly的方法,相比于Matplotlib,Poltly的交互性更强, 更适合在Web ...

  9. Qt开发经验小技巧221-225

    在对表格数据模型操作的时候,经常遇到一种场景就是,删除某条记录后,希望重新选中某一行.QTableView.QTableWidget本身就支持多选全选等操作,比如批量删除可以多选. //拿到表格数据模 ...

  10. Qt编写地图综合应用24-miniblink内核

    一.前言 用Qt做项目过程中,遇到需要用到浏览器控件的项目,可能都会绕不开一个问题,那就是从Qt5.6版本开始mingw编译器的Qt构建套件,不再提供浏览器控件了,之前还可以用webkit控件,这下很 ...