【洛谷P1983】车站分级
车站分级
首先,可以发现火车停靠站点的大小是没有什么规律的,
火车可以停靠在级别<=当前级别的站点,必须停靠在级别>=当前最高级别的站点
但是所有没有被停靠的站点级别一定比所有被停靠了的站点级别低
于是就可以据此建一个DAG,拓扑排序或记搜即可
(O(n^3)建图居然过了)
#include<iostream>
#include<cstring>
#include<cstdio>
#include<bitset>
using namespace std;
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define reset(a) fill(a,a+n+1,0)
#define N 1010
int n,m,Head[N],num,a[N],tot,f[N],ans;
bitset<N> line[N];
struct NODE{
int to,next;
} e[];
bool vis[N];
inline int read(){
int x=; char c=getchar();
while(c<''||c>'') c=getchar();
while(''<=c&&c<='') { x=(x<<)+(x<<)+c-''; c=getchar(); }
return x;
}
inline void add(int x ,int y){
e[++num].to=y;
e[num].next=Head[x];
Head[x]=num;
}
int dfs(int t){
if(f[t]) return f[t];
for(int i=Head[t];i;i=e[i].next)
f[t]=max(f[t],dfs(e[i].to));
return ++f[t];
}
int main()
{
scanf("%d%d",&n,&m);
int x,y;
rep(i,,m){
tot=;
reset(vis); reset(a);
x=read();
while(x--){
a[++tot]=read();
vis[a[tot]]=;
}
rep(j,a[],a[tot]) if(!vis[j])
rep(k,,tot) if(!line[j][a[k]])
{ add(j,a[k]); line[j][a[k]]=; }
}
for(int i=;i<=n;i++){
if(!f[i]) dfs(i);
ans=max(ans,f[i]);
}
printf("%d\n",ans);
return ;
}
【洛谷P1983】车站分级的更多相关文章
- 洛谷P1983车站分级
洛谷\(P1983\)车站分级(拓扑排序) 目录 题目描述 题目分析 思路分析 代码实现 题目描述 题目在洛谷\(P1983\)上 题目: 一条单向的铁路线上,依次有编号为 \(1, 2, -, ...
- 洛谷P1983 车站分级
P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao ...
- 洛谷 P1983 车站分级
题目链接 https://www.luogu.org/problemnew/show/P1983 题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n的 n个火车站.每个火车站都有一个级别,最低 ...
- 洛谷P1983车站分级题解
题目 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排 ...
- 【洛谷P1983 车站分级】
这题好像是个蓝题.(不过也确实差不多QwQ)用到了拓扑排序的知识 我们看这些这车站,沿途停过的车站一定比未停的车站的级别高 所以,未停靠的车站向已经停靠的车站连一条边,入度为0的车站级别就看做1 然后 ...
- 洛谷 P1983 车站分级 拓扑排序
Code: #include<cstdio> #include<queue> #include<algorithm> #include<cstring> ...
- P1983 车站分级 思维+拓扑排序
很久以前的一道暑假集训的题,忘了补. 感觉就是思维建图,加拓扑排序. 未停靠的火车站,必然比停靠的火车站等级低,就可以以此来建边,此处注意用vis来维护一下,一个起点和终点只建立一条边,因为不这样的话 ...
- 题解【洛谷P1983】[NOIP2013]车站分级
题面 题解 不难想到拓扑排序 于是每一个等级高的向等级低的连一条边 考虑拓扑排序过程中的分层 对于每个点进行分层 于是答案就是这些点中的最大层数 然后就会RE 发现我们多连了一些重复的边 用一个标记数 ...
- 洛谷 洛谷 P1011 车站 Label:续命模拟QAQ 未知50分
题目描述 火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上.下车,但上.下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人.从第3站起( ...
随机推荐
- LeetCode 257.二叉树所有路径(C++)
给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", ...
- zookeeper JAVA API 简单操作
package org.admln.program.Zoo_Test; import java.io.IOException; import java.security.NoSuchAlgorithm ...
- innosetup区分正常状态和静默安装状态(通过传递的参数)
命令行运行程序,如: myprogram.exe /abc /bcd 如果我们想获取其中的参数,“/abc”.“/bcd” 1. 直接使用innosetup自带的方法, GetCmdTail() ...
- pat04-树4. Root of AVL Tree (25)
04-树4. Root of AVL Tree (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue An A ...
- pat02-线性结构4. Pop Sequence (25)
02-线性结构4. Pop Sequence (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue Given ...
- SpringBoot | 第二十九章:Dubbo的集成和使用
前言 今年年初时,阿里巴巴开源的高性能服务框架dubbo又开始了新一轮的更新,还加入了Apache孵化器.原先项目使用了spring cloud之后,已经比较少用dubbo.目前又抽调回原来的行业应用 ...
- Python Fabric ssh 配置解读
Python Fabric ssh 配置解读 Fabric 2.4简介: Fabric is a high level Python (2.7, 3.4+) library designed to e ...
- Apache-Maven 的安装及配置
一. 下载 没有 Maven 的朋友可以去 Apache 的官网下载一个 Maven, Apache-Maven 官网下载 : https://maven.apache.org/download.cg ...
- mysql数据库将表移动到新数据库,或者说更改数据库名字
①创建新的数据库(你要改的名字) CREATE DATABASE new_name; ②更改数据库表的名字 RENAME TABLE old_name.table TO new_name.table ...
- OpenStack各组件详解和通信流程
一.openstack由来 openstack最早由美国国家航空航天局NASA研发的Nova和Rackspace研发的swift组成.后来以apache许可证授权,旨在为公共及私有云平台建设.open ...