车站分级
来源:互联网 发布:js获取标签name值 编辑:程序博客网 时间:2024/04/26 08:59
QAQ
这真是一个大水题,,,,
首先,我们知道没访问的车站一定比访问的车站编号小
所以,将起点到终点中访问的车站向没访问的车站建边,进行拓扑排序,看有几层,即为答案!
#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cstring>using namespace std;bool map[1001][1001];bool vis[1001];int sta[1001];int r[1001];queue <int> dl; int work(int n){ memset(vis,0,sizeof(vis)); int ans=0; while(1) { for(int i=1;i<=n;i++) if(r[i]==0&&vis[i]==0) { dl.push(i); vis[i]=1; } if(dl.empty()) break; while(!dl.empty()) { for(int i=1;i<=n;i++) if(map[dl.front()][i]) map[dl.front()][i]=0,r[i]--; dl.pop(); } ans++; } return ans;}int main(){ int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { memset(vis,0,sizeof(vis)); int t; scanf("%d",&t); for(int j=1,a;j<=t;j++) scanf("%d",&a),vis[a]=1,sta[j]=a; for(int j=sta[1];j<=sta[t];j++) if(!vis[j]) { for(int k=1;k<=t;k++) if(map[sta[k]][j]==0) map[sta[k]][j]=1,r[j]++; } } printf("%d",work(n)); return 0;}
阅读全文
0 0
- 车站分级
- 车站分级
- 车站分级
- NOIP2013 车站分级
- NOIP2013P4 车站分级 题解
- NOIP2013车站分级
- 洛谷 P1983 车站分级
- NOIP 2013 车站分级
- 洛谷 P1983 车站分级
- 洛谷 P1983 车站分级
- 洛谷 1983 车站分级
- 车站分级 洛谷p1983
- NOIP2013 车站分级
- luogu P1983 车站分级
- [NOIP2013]车站分级 解题报告
- swust oj 2553 车站分级
- 车站分级(拓扑排序)
- NOIP2013 普及组 车站分级
- 如何调试Vue项目
- String的compareTo方法的详细说明
- Add Two Numbers
- python实现逆序输出一个数字
- 关于链表的插入、删除和逆置
- 车站分级
- Fibonacci(斐波那契数列)的实现
- 嵌入式学习19(类的嵌套实现)
- 第五天总结
- 统计字符串中单个字符的出现次数
- CodeForces
- 排列组合的公式
- Hibernate学习4 二级缓存强化和事务管理 注解方式实现
- Ubuntu14.04下安装QQ国际版