【洛谷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站起( ...
随机推荐
- net.sf.json.JSONException: There is a cycle in the hierarchy! 转json死循环问题解决
解决上述问题遵照两个原则就可以: 1.页面不需要展示关联数据时 解决:将关联对象属性排除掉 2.页面需要展示关联数据时 解决:将关联对象改为立即加载,并且将关联对象中的属性排除
- Android开发:使用Fragment改造TabActivity
TabActivity在API 13(Android 3.2)被标记为过期,需要使用Fragment来实现,Fragment是Android 3.0引入的一个概念,主要就是为了适应各种不同的屏幕大小( ...
- 对key中有数字的字典进行排序
word_cloud = []cc = [{"c58":341,"c59":525,"c56":507,"c57":34 ...
- (六-1)Firefox插件安装
1.安装火狐插件 ①旧版本firefox 火狐浏览器右上角-->附件-->获取更多附件-->搜索-->Firebug 安装 Firebug 扩展:https://addons. ...
- C# 自定义属性Attribute
自定义属性 /// <summary> /// 脱敏属性 /// </summary> public class SensitiveAttribute:Attribute { ...
- 使用waitfor 语句
aitfor语句用于延迟后面语句的执行,可以指定延迟时间长度是具体的时间.参考下面的语句: waitfor delay ’00:01:15’ print N’到时间了’ --也可以不加N 字符串 ...
- 网站部署中遇到的问题-网页中js,css和图片资源无法加载
问题描述: 打开的网页跑版,图片无法加载,用控制台调试发现css和js都没有加载. 原因: 没有启用IIS"静态内容". 解决方法: 设置"打开或关闭windows功能& ...
- javascript小数相减出现一长串的小数位数
我们要修改网页某个数据的显示格式,需要两步操作: 1.在JS中通过$('.class1 .class2 li:eq(2) span.value').text().trim();类似的语句获取到数据内容 ...
- Spring课程 Spring入门篇 4-6 Spring bean装配之基于java的容器注解说明--@ImportResource和@Value java与properties文件交互
1 解析 1.1 这两个注解应用在什么地方 1.2 应用方式 1.3 xml方式实现取值 2 代码演练 2.1 @ImportResource和@Value代码演练 1 解析 1.1 这两个注解应用在 ...
- Nginx管理(一)
一.Nginx介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. 1.Nginx历史和特性 Nginx是由伊戈尔·赛索耶夫为俄罗斯 ...