萌新求助

P1983 [NOIP2013 普及组] 车站分级

膜神娄钰
by ousuimei_68 @ 2019-10-07 19:02:17


@[ousuimei_68](/space/show?uid=58319) ???别奶我啊,康一下呗
by xiaolou @ 2019-10-07 19:05:30


@[xiaolou](/space/show?uid=68675) ``` #include<iostream> #include<cmath> #include<cstring> #include<cstdio> #include<queue> using namespace std; int n,m,ans,tot; int a[1050],t,dep[1050],in[1050],p[1050],map[1050][1050]; struct link { int v; link *next; }edge[3000050],*head[3000050]; void sorting() { queue <int> q; for (int i=1;i<=n;i++) if (in[i]==0) { q.push(i); dep[i]=1; } while(q.empty()==false) { int ber=q.front(); q.pop(); for (link *p=head[ber];p;p=p->next) { int berr=p->v; dep[berr]=dep[ber]+1; ans=max(dep[berr],ans); in[berr]--; if (in[berr]==0) q.push(berr); } } } void add(int u,int v) { edge[++tot].v=v; edge[tot].next=head[u]; head[u]=&edge[tot]; } int main() { scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { memset(a,0,sizeof(a)); memset(p,0,sizeof(p)); scanf("%d",&t); for (int j=1;j<=t;j++) { scanf("%d",&a[j]); p[a[j]]++; } for (int j=a[1]+1;j<=a[t];j++) { if (p[j]==0) { for (int k=1;k<=t;k++) { int g=a[k]; if (map[j][g]==0) { in[g]++; add(j,g); map[j][g]++; } } } } } sorting(); printf("%d\n",ans); return 0; } ``` 送你份代码康康
by ousuimei_68 @ 2019-10-07 19:27:26


|