【洛谷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站起( ...
随机推荐
- Android ContentProvider的介绍(很详细)
博客分类: android进阶 一.ContentProvider的概念 ContentProvider:为存储和获取数据提供统一的接口.可以在不同的应用程序之间共享数据.Android已经为常见 ...
- SVN创建资源库和远程连接配置
SVN创建资源库和远程连接配置 本机安装的是TortoiseSVN-1.7.5.22551-win32-svn-1.7.3.msi 安装好后会在鼠标右键中出现如图最后两项的选项: 创建svn资源库: ...
- git提交代码报错 trailing whitespace的解决方法
1. git提交代码报错 trailing whitespace 禁止执行pre-commit脚本 进入到项目目录中 chmod a-x .git/hooks/pre-commit 2.git提交代码 ...
- 用DebuggerDisplay在Visual Studio的调试器中定制类的显示方式
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:用DebuggerDisplay在Visual Studio的调试器中定制类的显示方式.
- iis win7 注册
http://blog.sina.com.cn/s/blog_7ed5a8080100rinj.html vs2010默认的是4.0框架,4.0的框架是独立的CLR,和2.0的不同,如果想运行4.0的 ...
- CSS+DIV进度条
<style type="text/css"> .Bar { position: relative; width: 200px; /* 宽度 */ border: 1p ...
- lua_nginx_module用例
content_by_lua server { listen ; server_name lua.luckybing.top; location / { default_type 'text/plai ...
- 键盘按键keyCode大全,js页面快捷键
字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L 76 U 85 3 ...
- 阻止冒泡 table表格取消选中最后一列
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Topcoder SRM 563 Div1 500 SpellCards
题意 [题目链接]这怎么发链接啊..... 有\(n\)张符卡排成一个队列,每张符卡有两个属性,等级\(li\)和伤害\(di\). 你可以做任意次操作,每次操作为以下二者之一: 把队首的符卡移动到队 ...