F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_20613734_14101.cpp:12:18: error: stray '#' in program
     #define N 405#define M 4005#define E#define inf 0x3f3f3f3f#define dinf 1e10#define linf (LL)1<<60#define LL long long#define clr(a,b) memset(a,b,sizeof(a))using namespace std; LL mod;struct Edge{    int a,b,c;    bool operator<(const Edge & t)const    {        return c<t.c;    }}edge[M];int n,m;LL ans;int fa[N],ka[N],vis[N];LL gk[N][N],tmp[N][N];vector<int>
                  ^
0_0_20613734_14101.cpp:13:9: note: in expansion of macro 'N'
     gra[N]; int findfa(int a,int b[]){return a==b[a]?a:b[a]=findfa(b[a],b);} LL det(LL a[][N],int n){    for(int i=0;i<n;i++)for(int j=0;j<n;j++)a[i][j]%=mod;    long long ret=1;    for(int i=1;i<n;i++)    {        for(int j=i+1;j<n;j++)            while(a[j][i])            {                LL t=a[i][i]/a[j][i];                for(int k=i;k<n;k++)                    a[i][k]=(a[i][k]-a[j][k]*t)%mod;                for(int k=i;k<n;k++)                    swap(a[i][k],a[j][k]);                ret=-ret;            }        if(a[i][i]==0)return 0;        ret=ret*a[i][i]%mod;    }    return (ret+mod)%mod;} int main(){    while(scanf("%d%d%I64d",&n,&m,&mod)==3)    {         if(n==0 && m==0 && mod==0)break;         memset(gk,0,sizeof(gk));        memset(tmp,0,sizeof(tmp));        memset(fa,0,sizeof(fa));        memset(ka,0,sizeof(ka));        memset(tmp,0,sizeof(tmp));         for(int i=0;i<N;i++)gra[i].clear();        for(int i=0;i<m;i++)            scanf("%d%d%d",&edge[i].a,&edge[i].b,&edge[i].c);        sort(edge,edge+m);        for(int i=1;i<=n;i++)fa[i]=i,vis[i]=0;        int pre=-1;        ans=1;        for(int h=0;h<=m;h++)        {            if(edge[h].c!=pre||h==m)            {                for(int i=1;i<=n;i++)                    if(vis[i])                    {                        int u=findfa(i,ka);                        gra[u].push_back(i);                        vis[i]=0;                    }                for(int i=1;i<=n;i++)                    if(gra[i].size()>1)                    {                        for(int a=1;a<=n;a++)                            for(int b=1;b<=n;b++)                                tmp[a][b]=0;                        int len=gra[i].size();                        for(int a=0;a<len;a++)                            for(int b=a+1;b<len;b++)                            {                                int la=gra[i][a],lb=gra[i][b];                                tmp[a][b]=(tmp[b][a]-=gk[la][lb]);                                tmp[a][a]+=gk[la][lb];tmp[b][b]+=gk[la][lb];                            }                        long long ret=(long long)det(tmp,len);                        ret%=mod;                        ans=(ans*ret%mod)%mod;                        for(int a=0;a<len;a++)fa[gra[i][a]]=i;                    }                for(int i=1;i<=n;i++)                {                    ka[i]=fa[i]=findfa(i,fa);                    gra[i].clear();                }                if(h==m)break;                pre=edge[h].c;            }            int a=edge[h].a,b=edge[h].b;            int pa=findfa(a,fa),pb=findfa(b,fa);            if(pa==pb)continue;            vis[pa]=vis[pb]=1;            ka[findfa(pa,ka)]=findfa(pb,ka);            gk[pa][pb]++;gk[pb][pa]++;        }        int flag=0;        for(int i=2;i<=n&&!flag;i++)if(ka[i]!=ka[i-1])flag=1;        ans%=mod;        printf("%I64d\n",flag?0:ans);    }    return 0;}
         ^
0_0_20613734_14101.cpp:12:32: error: stray '#' in program
     #define N 405#define M 4005#define E#define inf 0x3f3f3f3f#define dinf 1e10#define linf (LL)1<<60#define LL long long#define clr(a,b) memset(a,b,sizeof(a))using namespace std; LL mod;struct Edge{    int a,b,c;    bool operator<(const Edge & t)const    {        return c<t.c;    }}edge[M];int n,m;LL ans;int fa[N],ka[N],vis[N];LL gk[N][N],tmp[N][N];vector<int>
                                ^
0_0_20613734_14101.cpp:13:9: note: in expansion of macro 'N'
     gra[N]; int findfa(int a,int b[]){return a==b[a]?a:b[a]=findfa(b[a],b);} LL det(LL a[][N],int n){    for(int i=0;i<n;i++)for(int j=0;j<n;j++)a[i][j]%=mod;    long long ret=1;    for(int i=1;i<n;i++)    {        for(int j=i+1;j<n;j++)            while(a[j][i])            {                LL t=a[i][i]/a[j][i];                for(int k=i;k<n;k++)                    a[i][k]=(a[i][k]-a[j][k]*t)%mod;                for(int k=i;k<n;k++)                    swap(a[i][k],a[j][k]);                ret=-ret;            }        if(a[i][i]==0)return 0;        ret=ret*a[i][i]%mod;    }    return (ret+mod)%mod;} int main(){    while(scanf("%d%d%I64d",&n,&m,&mod)==3)    {         if(n==0 && m==0 && mod==0)break;         memset(gk,0,sizeof(gk));        memset(tmp,0,sizeof(tmp));        memset(fa,0,sizeof(fa));        memset(ka,0,sizeof(ka));        memset(tmp,0,sizeof(tmp));         for(int i=0;i<N;i++)gra[i].clear();        for(int i=0;i<m;i++)            scanf("%d%d%d",&edge[i].a,&edge[i].b,&edge[i].c);        sort(edge,edge+m);        for(int i=1;i<=n;i++)fa[i]=i,vis[i]=0;        int pre=-1;        ans=1;        for(int h=0;h<=m;h++)        {            if(edge[h].c!=pre||h==m)            {                for(int i=1;i<=n;i++)                    if(vis[i])                    {                        int u=findfa(i,ka);                        gra[u].push_back(i);                        vis[i]=0;                    }                for(int i=1;i<=n;i++)                    if(gra[i].size()>1)                    {                        for(int a=1;a<=n;a++)                            for(int b=1;b<=n;b++)                                tmp[a][b]=0;                        int len=gra[i].size();                        for(int a=0;a<len;a++)                            for(int b=a+1;b<len;b++)                            {                                int la=gra[i][a],lb=gra[i][b];                                tmp[a][b]=(tmp[b][a]-=gk[la][lb]);                                tmp[a][a]+=gk[la][lb];tmp[b][b]+=gk[la][lb];                            }                        long long ret=(long long)det(tmp,len);                        ret%=mod;                        ans=(ans*ret%mod)%mod;                        for(int a=0;a<len;a++)fa[gra[i][a]]=i;                    }                for(int i=1;i<=n;i++)                {                    ka[i]=fa[i]=findfa(i,fa);                    gra[i].clear();                }                if(h==m)break;                pre=edge[h].c;            }            int a=edge[h].a,b=edge[h].b;            int pa=findfa(a,fa),pb=findfa(b,fa);            if(pa==pb)continue;            vis[pa]=vis[pb]=1;            ka[findfa(pa,ka)]=findfa(pb,ka);            gk[pa][pb]++;gk[pb][pa]++;        }        int flag=0;        for(int i=2;i<=n&&!flag;i++)if(ka[i]!=ka[i-1])flag=1;        ans%=mod;        printf("%I64d\n",flag?0:ans);    }    return 0;}
         ^
0_0_20613734_14101.cpp:12:41: error: stray '#' in program
     #define N 405#define M 4005#define E#define inf 0x3f3f3f3f#define dinf 1e10#define linf (LL)1<<60#define LL long long#define clr(a,b) memset(a,b,sizeof(a))using namespace std; LL mod;struct Edge{    int a,b,c;    bool operator<(const Edge & t)const    {        return c<t.c;    }}edge[M];int n,m;LL ans;int fa[N],ka[N],vis[N];LL gk[N][N],tmp[N][N];vector<int>
                                         ^
0_0_20613734_14101.cpp:13:9: note: in expansion of macro 'N'
     gra[N]; int findfa(int a,int b[]){return a==b[a]?a:b[a]=findfa(b[a],b);} LL det(LL a[][N],int n){    for(int i=0;i<n;i++)for(int j=0;j<n;j++)a[i][j]%=mod;    long long ret=1;    for(int i=1;i<n;i++)    {        for(int j=i+1;j<n;j++)            while(a[j][i])            {                LL t=a[i][i]/a[j][i];                for(int k=i;k<n;k++)                    a[i][k]=(a[i][k]-a[j][k]*t)%mod;                for(int k=i;k<n;k++)                    swap(a[i][k],a[j][k]);                ret=-ret;            }        if(a[i][i]==0)return 0;        ret=ret*a[i][i]%mod;    }    return (ret+mod)%mod;} int main(){    while(scanf("%d%d%I64d",&n,&m,&mod)==3)    {         if(n==0 && m==0 && mod==0)break;         memset(gk,0,sizeof(gk));        memset(tmp,0,sizeof(tmp));        memset(fa,0,sizeof(fa));        memset(ka,0,sizeof(ka));        memset(tmp,0,sizeof(tmp));         for(int i=0;i<N;i++)gra[i].clear();        for(int i=0;i<m;i++)            scanf("%d%d%d",&edge[i].a,&edge[i].b,&edge[i].c);        sort(edge,edge+m);        for(int i=1;i<=n;i++)fa[i]=i,vis[i]=0;        int pre=-1;        ans=1;        for(int h=0;h<=m;h++)        {            if(edge[h].c!=pre||h==m)            {                for(int i=1;i<=n;i++)                    if(vis[i])                    {                        int u=findfa(i,ka);                        gra[u].push_back(i);                        vis[i]=0;                    }                for(int i=1;i<=n;i++)                    if(gra[i].size()>1)                    {                        for(int a=1;a<=n;a++)                            for(int b=1;b<=n;b++)                                tmp[a][b]=0;                        int len=gra[i].size();                        for(int a=0;a<len;a++)                            for(int b=a+1;b<len;b++)                            {                                int la=gra[i][a],lb=gra[i][b];                                tmp[a][b]=(tmp[b][a]-=gk[la][lb]);                                tmp[a][a]+=gk[la][lb];tmp[b][b]+=gk[la][lb];                            }                        long long ret=(long long)det(tmp,len);                        ret%=mod;                        ans=(ans*ret%mod)%mod;                        for(int a=0;a<len;a++)fa[gra[i][a]]=i;                    }                for(int i=1;i<=n;i++)                {                    ka[i]=fa[i]=findfa(i,fa);                    gra[i].clear();                }                if(h==m)break;                pre=edge[h].c;            }            int a=edge[h].a,b=edge[h].b;            int pa=findfa(a,fa),pb=findfa(b,fa);            if(pa==pb)continue;            vis[pa]=vis[pb]=1;            ka[findfa(pa,ka)]=findfa(pb,ka);            gk[pa][pb]++;gk[pb][pa]++;        }        int flag=0;       


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-10-03 03:23:31, Gzip enabled