为什么我的骗分版本tle了啊啊啊

P1600 [NOIP2016 提高组] 天天爱跑步

ex_078 @ 2019-11-15 11:57:10


#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
const int N=100010,M=100010;
int n,m;
int cnt;
struct edge
{
    int to;
    int nxt;
}bian[M*2];
int s[M],t[M];
int w[N];
int first[N];
int cont[N];//表示每个节点上的人数 
void add_edge(int s,int e)
{
    cnt++;
    bian[cnt].to=e;
    bian[cnt].nxt=first[s];
    first[s]=cnt;
}
int flag1;//起点等于终点
int flag2; //从0的时刻开始
int flag3;;//树退化 成一条链 
int ans[N];//每个节点的观察员可观察到的人数 
inline int read()
{
    int p=0,f=1;
    char c=getchar();
    while(c<'0'||c>'9')
    {
        if(c=='-')
        {
            f=-1;
        }
        c=getchar();
    }
    while(c>='0'&&c<='9')
    {
        p=p*10+c-'0';
        c=getchar();
    }
    return p*f;
}
int main()
{
    cin>>n>>m;
    for(register int i=1;i<=m;i++)
    {
        int u,v;
        u=read();
        v=read();
        add_edge(u,v);
        add_edge(v,u);
    }
    for(register int i=1;i<=n;i++)
    {
        w[i]=read();
        if(w[i]!=0)
        {
            flag2=1;
        }
    }
 for(register int i=1;i<=m;i++)
    {
        s[i]=read();
        t[i]=read();
        if(s[i]!=t[i])
        {
            flag1=1;
        }
    }
    if(flag1==0)
    {
        for(int i=1;i<=m;i++)
        {
            ans[s[i]]++;
        }
        for(int i=1;i<=n;i++)
        {
            if(w[i]!=0)
            {
                ans[i]=0;
            }
        }
        for(int i=1;i<=n;i++)
        {
            printf("%d ",ans[i]);
        }
        return 0;
    }
    else if(flag2==0)
    {
        for(int i=1;i<=m;i++)
        {
            if(s[i]==t[i])
            {
                ans[s[i]]++;
             } 
        }
        for(int i=1;i<=n;i++)
        {
            printf("%d ",ans[i]);
        }
        return 0;
    }
    for(int i=1;i<=m;i++)
    {
        if(w[t[i]]==t[i]-s[i])
        {
            ans[t[i]]++;
         } 
        for(int i=1;i<=n;i++)
        {
            printf("%d ",ans[i]);
        }
    }
    return 0;
}

by ex_078 @ 2019-11-15 11:57:24

只求35分


|