救救孩纸qwq

P1983 [NOIP2013 普及组] 车站分级

良辰、 @ 2019-05-28 17:44:30

70分
RE
。。。
数组开的巨大都没用
呜呜呜qaq
求dalao帮忙看看趴(感谢感谢

#include<bits/stdc++.h>
#define maxn 4010
#define maxm 4010
#define maxn_maxm 2000010

using namespace std;

inline int read(){
    int x=0,t=1; char ch=getchar();
    while((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
    if(ch=='-') t=-1,ch=getchar();
    while(ch<='9'&&ch>='0') x=x*10+ch-48,ch=getchar();
    return x*t;
}

int n,m;
int a[maxm];
struct Edge{
    int next,to;
}edge[maxn_maxm];
int ans[maxn],maxn_ans;
int cnt,head[maxn_maxm];
bool vis[maxn],mapp[maxn][maxn];
int in[maxn];
int sum_now[maxn],tot;

void sortt(){
    for(register int i=1;i<=n;++i){
        if(in[i]==0){
            sum_now[++tot]=i;
        }
    }
    int qaq=1;
    while(tot<n){
    int flag=0;
        for(register int i=qaq;i<=tot;++i){
            int root=sum_now[i];
            for(register int j=head[root];j;j=edge[j].next){
                int v=edge[j].to; in[v]--;
                if(in[v]==0){
                    flag++;
                    sum_now[tot+flag]=v;
                    ans[v]=ans[root]+1;
                }
            }
        }
        qaq=tot+1;
        tot+=flag;
//      cout<<1;
    }
}

void add(int u,int v){
    edge[++cnt].to=v;
    edge[cnt].next=head[u];
    head[u]=cnt;
}

int main()
{
    n=read(); m=read();
    for(int i=1;i<=n;++i) ans[i]=1;
    for(register int i=1;i<=m;++i){
        memset(vis,0,sizeof(vis));
        int si=read();
        for(register int j=1;j<=si;++j){
            a[j]=read();
            vis[a[j]]=1;
        }
        for(register int j=a[1];j<=a[si];++j){
            if(vis[j]) continue;
            for(register int k=1;k<=si;++k){
                if(mapp[a[k]][j]==0){
                    mapp[a[k]][j]==1;
                    ++in[j];
                    add(a[k],j);
                }
            }
        }
    }
//  memset(vis,0,sizeof(vis));
    sortt();
    for(int i=1;i<=n;i++){
        maxn_ans=max(maxn_ans,ans[i]);
//      cout<<maxn_ans<<" ";
    }
    printf("%d\n",maxn_ans);
    return 0;
}

by BinDir0 @ 2019-05-28 18:20:29

@良辰、 捕捉dalao!!!


by BinDir0 @ 2019-05-28 18:20:40

@良辰、 大师球!


by 言和YanHe @ 2019-05-28 19:05:32

捕捉大佬 @恨妹不成穹 !


by BinDir0 @ 2019-05-28 19:20:02

@HFOI菠萝 dalao qaq


by kampf @ 2019-05-28 19:32:16

@良辰、 1,我天真的以为是您数据卡的不好,于是用了长者的生日和各种玄学数字,然后gg 2,我看不懂您的代码(我太菜了对不起qwq),建议你看看李煜东的算法竞赛进阶指南,我是按照那个打的(管理别棕我qwq) 3,非t即r,也许是别的问题???(蒟蒻只知道r是因为数组开小了)


by 言和YanHe @ 2019-05-28 19:32:29

@恨妹不成穹 您的提交数还差一就是66ccff666了呢


by BinDir0 @ 2019-05-28 19:41:24

@HFOI菠萝 wow真的呀qaq谢谢提醒


by 良辰、 @ 2019-05-28 19:41:47

@g36c qwq好趴我看看


|