洛谷 1983 车站分级 拓扑排序
2017-09-30 08:36
295 查看
题目:
https://www.luogu.org/problem/show?pid=1983
莫名RE原因:数组开小了;
因为此题m不是边数………………n也不是;
考虑上界有n*m条边,所以邻接表存图要开到10^6;
我智障…………;
还有考虑边的判重,开二维数组记录(好像不用邻接表了……);
然后拓扑排序求最长路;
题目亮点:
只要会建图基本就能(guo)A(yang)C(li);
需要判重;
这题给我敲响了警钟;
总结:
邻接表存图注意边数;
注意边的判重(n,m<=3000,二维数组);
QAQ
https://www.luogu.org/problem/show?pid=1983
莫名RE原因:数组开小了;
因为此题m不是边数………………n也不是;
考虑上界有n*m条边,所以邻接表存图要开到10^6;
我智障…………;
还有考虑边的判重,开二维数组记录(好像不用邻接表了……);
然后拓扑排序求最长路;
题目亮点:
只要会建图基本就能(guo)A(yang)C(li);
需要判重;
这题给我敲响了警钟;
总结:
邻接表存图注意边数;
注意边的判重(n,m<=3000,二维数组);
QAQ
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; const int MAXN=1552001; int dis[MAXN],ru[MAXN],fst[MAXN],nxt[MAXN],a[1001]; int n,m,tot,num,ans=-1; bool vis[MAXN],ms[1001][1001]; queue<int>q; struct hh { int from,to; }ma[MAXN]; void build(int f,int t) { tot++; ma[tot]=(hh){f,t}; nxt[tot]=fst[f]; fst[f]=tot; return; } int bfs() { for(int i=1;i<=n;i++) dis[i]=1; while(!q.empty()) { int x=q.front(); q.pop(); for(int i=fst[x];i;i=nxt[i]) { int v=ma[i].to; ru[v]--; if(!ru[v]) q.push(v),dis[v]=max(dis[x]+1,dis[v]); } } for(int i=1;i<=n;i++) ans=max(ans,dis[i]); return ans; } void init() { memset(a,0,sizeof(a)); memset(vis,0,sizeof(vis)); return; } void solve() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) { init(); scanf("%d",&num); for(int j=1;j<=num;j++) scanf("%d",&a[j]),vis[a[j]]=1; for(int j=a[1];j<=a[num];j++) { if(vis[j]) continue; for(int k=1;k<=num;k++) { if(!ms[a[k]][j]) build(a[k],j),ru[j]++,ms[a[k]][j]=1; } } } for(int i=1;i<=n;i++) if(!ru[i]) q.push(i); cout<<bfs()<<endl; } int main() { solve(); return 0; }
相关文章推荐
- 洛谷Oj-P1983 车站分级-拓扑排序
- 车站分级(洛谷 1983)
- 洛谷 P1983 车站分级
- 【洛谷1983】车站分级(拓扑)
- 洛谷 P1983 车站分级
- 洛谷 P1983 车站分级 解题报告
- 洛谷 P1983 [NOIP2013普及组 T4] 车站分级
- NOIP 车站分级 (luogu 1983 & codevs 3294 & vijos 1851) - 拓扑排序 - bitset
- luogu1983【2013普及】车站分级(拓扑排序)
- Luogu1983 [NOIP2013]车站分级 解题报告【图论】【拓扑排序】【栈】
- LuoGu 1983 浅谈如何【车站分级】即数据架构调整加强线段树优化时空复杂度转换
- 2013NOIP普级组第四题--车站分级(参考洛谷题解)
- 刷题记录luoguP1983 车站分级
- noip车站分级 拓扑排序
- 【基础练习】【拓扑排序】codevs3294 车站分级题解
- P1983 车站分级(拓扑排序)
- 图论训练 车站分级 [数据结构优化建边][拓扑排序]
- 车站分级(拓扑排序)
- 【基础练习】【拓扑排序】codevs3294 车站分级题解
- 拓扑排序以及队列栈的使用 (车站分级noip2013第四题)