Luogu P1983 车站分级
(一周没写过随笔了)
这道题有坑!
看到题目,发现这么明显(??)的要求顺序,还有什么想法,拓扑!
将每条路范围内等级大于等于它的点(不能重复(坑点1))和它连一条边,注意起点终点都要有(坑点2),然后拓扑求解即可。
BFS的拓扑感觉更好。
然后打了个map判重交上去帅气的TLE了3个点
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<map>
using namespace std;
const int N=;
vector <int> a[N];
map <int,bool> ma[N];
int n,i,m,j,q[N*+],head,tail,s[N],x,k,ru[N],bs[N],ans;
bool f[N];
inline void read(int &x)
{
x=; char ch=getchar();
while (ch<''||ch>'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
}
int main()
{
read(n); read(m);
for (i=;i<=m;++i)
{
memset(f,,sizeof(f));
read(s[]);
for (j=;j<=s[];++j)
read(s[j]),f[s[j]]=;
for (j=s[]+;j<=s[s[]];++j)
if (!f[j])
for (k=;k<=s[];++k)
if (!ma[s[k]][j]) a[s[k]].push_back(j),ru[j]++,ma[s[k]][j]=;
}
for (i=;i<=n;++i)
if (!ru[i]) q[++tail]=i,bs[i]=;
while (head<tail)
{
int now=q[++head];
for (i=;i<a[now].size();++i)
{
int k=a[now][i];
bs[k]=bs[now]+;
ans=max(ans,bs[k]);
if (!(--ru[k])) q[++tail]=k;
}
}
printf("%d",ans);
return ;
}
然后一想,N<=1000至于用map么。然后直接二维数组判断,然后过了。。。
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
using namespace std;
const int N=;
vector <int> a[N];
int n,i,m,j,q[N*+],head,tail,s[N],x,k,ru[N],bs[N],ans;
bool f[N],p[N][N];
inline void read(int &x)
{
x=; char ch=getchar();
while (ch<''||ch>'') ch=getchar();
while (ch>=''&&ch<='') x=x*+ch-'',ch=getchar();
}
int main()
{
read(n); read(m);
for (i=;i<=m;++i)
{
memset(f,,sizeof(f));
read(s[]);
for (j=;j<=s[];++j)
read(s[j]),f[s[j]]=;
for (j=s[];j<=s[s[]];++j)
if (!f[j])
for (k=;k<=s[];++k)
if (!p[s[k]][j]) a[s[k]].push_back(j),ru[j]++,p[s[k]][j]=;
}
for (i=;i<=n;++i)
if (!ru[i]) q[++tail]=i,bs[i]=;
while (head<tail)
{
int now=q[++head];
for (i=;i<a[now].size();++i)
{
int k=a[now][i];
bs[k]=bs[now]+;
ans=max(ans,bs[k]);
if (!(--ru[k])) q[++tail]=k;
}
}
printf("%d",ans);
return ;
}
一道坑题!
Luogu P1983 车站分级的更多相关文章
- 【luogu P1983 车站分级】 题解
题目链接:https://www.luogu.org/problemnew/show/P1983 符合了NOIP命题的特点,知识点不难,思维量是有的. step1:把题读进去,理解.得到 非停靠点的等 ...
- 洛谷P1983 车站分级
P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao ...
- 洛谷P1983车站分级
洛谷\(P1983\)车站分级(拓扑排序) 目录 题目描述 题目分析 思路分析 代码实现 题目描述 题目在洛谷\(P1983\)上 题目: 一条单向的铁路线上,依次有编号为 \(1, 2, -, ...
- 洛谷 P1983 车站分级
题目链接 https://www.luogu.org/problemnew/show/P1983 题目描述 一条单向的铁路线上,依次有编号为 1,2,…,n的 n个火车站.每个火车站都有一个级别,最低 ...
- 洛谷P1983车站分级题解
题目 这个题非常毒瘤,只要还是体现在其思维难度上,因为要停留的车站的等级一定要大于不停留的车站的等级,因此我们可以从不停留的车站向停留的车站进行连边,然后从入度为0的点即不停留的点全都入队,然后拓扑排 ...
- P1983 车站分级[拓扑]
题目描述 一条单向的铁路线上,依次有编号为 1, 2, -, n1,2,-,n的 nn个火车站.每个火车站都有一个级别,最低为 11 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟 ...
- 【洛谷P1983 车站分级】
这题好像是个蓝题.(不过也确实差不多QwQ)用到了拓扑排序的知识 我们看这些这车站,沿途停过的车站一定比未停的车站的级别高 所以,未停靠的车站向已经停靠的车站连一条边,入度为0的车站级别就看做1 然后 ...
- P1983车站分级
%%%rqy 传送 我们注意到题目中这段话: 既然大于等于x的站都要停,那么不停的站的级别是不是都小于x?(这里讨论在始发站和终点站以内的站(注意这里是个坑)) 我们可以找出每趟车没停的站,向所有停了 ...
- P1983 车站分级
题目描述 一条单向的铁路线上,依次有编号为 1, 2, …, n 的 n 个火车站.每个火车站都有一个级别,最低为 1 级.现有若干趟车次在这条线路上行驶,每一趟都满足如下要求:如果这趟车次停靠了火车 ...
随机推荐
- Python Django框架笔记(一):安装及创建项目
#推荐一本书<Python核心编程>(适合有一定基础的),美国人Wesley Chun编写的,京东.淘宝应该都有.我是觉得写的很好,详细.简洁.满满的干货,不像有的书整本看完也没什么用. ...
- CSS样式----css样式表和选择器(图文详解)
本文最初于2015-10-03发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 本文主要内容 CSS概述 CSS和HTML结合的三种方式:行内样 ...
- Problem2-Project Euler
Even Fibonacci numbers Each new term in the Fibonacci sequence is generated by adding the previous ...
- UIAutomator环境搭建
目录 下载.安装JDK&配置Java环境变量 下载.安装SDK.ADT&配置Android环境变量 下载.安装ANT&配置ANT环境变量 创建UIAutomator工程 UIA ...
- Prometheus Node_exporter 之 Network Netstat ICMP
Network Netstat ICMP /proc/net/snmp 1. ICMP Errors 1 type: GraphUnit: shortLabel: Messages out (-) / ...
- 为notifyIcon.icon属性赋图片
System.Drawing.Bitmap bp; bp = new Bitmap(Application.StartupPath + @"\image\" + MeiYeShuo ...
- 存储过程使用 in 添加多个参数的情况处理方式【转】
原文连接:http://www.jb51.net/article/41472.htm -->情景 ① 通过刚才的SQL递归方式,我们已经可以将一个组织机构和其全部下级单位查询出来:假设每个组织机 ...
- 利用MVC Chart 打造后台图表、前端图表
应用场景是这个样子的:要做导出数据到PDF的功能,涉及到文本.表格.图表等内容.在做图表功能时,发现之前用Highcharts做的图表根本就不能集成到PDF中.这里需要一个能在程序后台就生成图表的功能 ...
- 记录一次优化mysql查询语句的方法
今天在数据库中导入大量的数据,大概有25万条,结果在查询的时候优化没有做好,因此导致查询意外停止或者是直接查询程序中止,很是苦恼.所以才有了优化查询的方法总结 1.首先是查看一下数据量 2.接下来按照 ...
- 51nod 1636 教育改革
题目链接 令f[i][j][k]为第i天选择的课程为j,设置作业为a[j]+k时的最大作业量. 那么f[i][j][k]可以由哪些状态转移而来?先把课程按复杂度排序,那么可以转移来的课程是f[i-1] ...