模拟为什么不过--咕咕咕咕

P1983 [NOIP2013 普及组] 车站分级

ls2128606 @ 2022-08-06 16:13:02

#include<bits/stdc++.h>
using namespace std;
int n,m,a,h,book[10010],book1;
int  edge[1010][1010];
int main ()
{book[0]=1;
cin>>n>>m;
for(int i=1;i<=m;++i){
cin>>edge[i][0];
for(int j=1;j<=edge[i][0];++j)
{

cin>>a;
edge[i][a]=1;
h=max(a,h);}
for(int i=1;i<=m;++i)
{
    for(int j=1;j<=h;++j)
{if(!edge[i][j])
{for(int k=1;k<=i;++k)
    {
        book1=0;
        if(!edge[k][j]&&book[k]>book1)
        {
            book1=book[k];
        }
    }
    if(!book1){
            book[i]=book1+1;
            break;
    }

}

}
}

}

cout<<book[m]+1;
return 0;
}

大佬求助


by a2lyaXNhbWUgbWFyaXNh @ 2022-08-06 16:20:45

@ls2128606 额,虽然我也不会,但这么简单的模拟肯定不能算绿题,标签里也没有模拟,模拟不是正解吧


by HLK_ZX @ 2022-08-06 16:28:28

我第一次见到这么乱的码风


by ls2128606 @ 2022-08-06 16:30:43

@_Kzawa 3分钟打光不要计较


by _XHY20180718_ @ 2022-08-06 16:32:18

这码风.....

怕不是用手机打出来的


by ls2128606 @ 2022-08-06 16:32:53

@xiehuiying 特斯拉屏--咕咕咕


by _XHY20180718_ @ 2022-08-06 16:33:13

%%%tql!

三分钟一道题!(doge)


by syn091112 @ 2022-08-06 16:47:52

?

有没有一种可能,你的输入是错的


by ls2128606 @ 2022-08-06 16:48:33

@sbsbsbssbb 具体说一下


by ls2128606 @ 2022-08-06 16:49:29

中国コンピュータ協会

中国计算机协会https://cce.mysxl.cn

中国コンピュータ学会ではありません


by ls2128606 @ 2022-08-06 16:56:37

#include<bits/stdc++.h>
using namespace std;
int n,m,vis[10010],p[10010],d[10010],s,dp[10010],head[10010],ans,cnt,g[10010][10010];
struct www{
    int to,next;
}a[1000010];
void add(int u, int v){
    a[++cnt].to=v;
    a[cnt].next=head[u];
    head[u]=cnt;
    d[v]++;
}
void toptoptoptoptopsort(){
    queue<int>q;
    for(int i=1;i<=n;i++)
        if(d[i]==0){
            q.push(i);
            dp[i]=1;
        }
    while(!q.empty()){
        int u=q.front();
        q.pop();
        for(int i=head[u];i;i=a[i].next){
            int v=a[i].to;
            dp[v]=dp[u]+1;
            ans=max(ans,dp[v]);
            d[v]--;
            if(!d[v]) q.push(v);
        }
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
    memset(p,0,sizeof(p));
        memset(vis,0,sizeof(vis));
        cin>>s;
        for(int j=1;j<=s;j++){
            cin>>p[j];
            vis[p[j]]=1;
        }
        for(int j=p[1]+1;j<=p[s];j++)
            if(!vis[j])
    for(int k=1;k<=s;k++)
                if(!g[j][p[k]])
                {
                g[j][p[k]]=1;
            add(j,p[k]);
                    }
}
    toptoptoptoptopsort();
    cout<<ans;
} 

谢谢了,topsort试了一下n边AC; 上代码 TOP的PRO的PRO的PRO...... toptoptotptotptotpsort


| 下一页