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_20614692_4228.cpp:6:25: error: stray '#' in program
     using namespace std;#define ll long long#define maxn 101int p;struct Node{    int mat[maxn][maxn];    void init(){        memset(mat,0,sizeof(mat));    }    void one(int n){        init();        for(int i = 0;i < n; i++)            mat[i][i] = 1;    }    int Det(int n,  int mod1){         int ans = 1;        int *p1,*p2,mul;         for(int i = 0;i < n; i++){            for(int j = i+1;j < n; j++){                while(mat[i][i] != 0 && mat[j][i] != 0){                    if(abs(mat[i][i]) > abs(mat[j][i]))                        p1=mat[i],p2=mat[j],mul=mat[i][i]/mat[j][i];                    else                        p1=mat[j],p2=mat[i],mul=mat[j][i]/mat[i][i];                    for(int l = i;l < n; l++)                        p1[l] = (p1[l]-(ll)p2[l]*mul)%mod1;                }                if(mat[i][i] == 0){                    ans = -ans;                    for(int l = i;l < n;l++)                        swap(mat[i][l],mat[j][l]);                }            }            ans = (ll)ans*mat[i][i] % mod1;        }        return (ans+mod1)%mod1;    }};int matrix[maxn][maxn];void multi(Node& a,Node& b,int n){     for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            matrix[i][j] = 0;    for(int i = 0;i < n; i++){        for(int j = 0;j < n; j++){            if(a.mat[i][j] == 0) continue;            for(int k = 0;k < n; k++){                if(b.mat[j][k] == 0) continue;                matrix[i][k] = (matrix[i][k]+(ll)a.mat[i][j]*b.mat[j][k])%p;            }        }    }    for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            a.mat[i][j] = matrix[i][j];}int mp[maxn][maxn];int main(){    int t,n,m,q,u,v;    Node a,b,c;    scanf("%d",&t);    while(t--){        scanf("%d%d%d%d",&n,&m,&p,&q);        c.init();        for(int i = 0;i < m; i++){            scanf("%d%d",&u,&v);            u--,v--;            c.mat[u][u]++;            c.mat[v][v]++;            c.mat[u][v] = c.mat[v][u] = -1;        }        if(q < n-1){            printf("0\n");            continue;        }        int ans = c.Det(n-1,p);        if(ans == 0){            printf("0\n");            continue;        }        a.init();        b.one(n);        for(int i = 1;i < n; i++)            a.mat[i][i] = i,a.mat[i][i-1] = n-i;        while(q){            if(q&1) multi(b,a,n);            multi(a,a,n);            q/=2;        }        ans = (ll)ans*b.mat[n-1][0]%p;        printf("%d\n",ans);    }    return 0;}
                         ^
0_0_20614692_4228.cpp:6:45: error: stray '#' in program
     using namespace std;#define ll long long#define maxn 101int p;struct Node{    int mat[maxn][maxn];    void init(){        memset(mat,0,sizeof(mat));    }    void one(int n){        init();        for(int i = 0;i < n; i++)            mat[i][i] = 1;    }    int Det(int n,  int mod1){         int ans = 1;        int *p1,*p2,mul;         for(int i = 0;i < n; i++){            for(int j = i+1;j < n; j++){                while(mat[i][i] != 0 && mat[j][i] != 0){                    if(abs(mat[i][i]) > abs(mat[j][i]))                        p1=mat[i],p2=mat[j],mul=mat[i][i]/mat[j][i];                    else                        p1=mat[j],p2=mat[i],mul=mat[j][i]/mat[i][i];                    for(int l = i;l < n; l++)                        p1[l] = (p1[l]-(ll)p2[l]*mul)%mod1;                }                if(mat[i][i] == 0){                    ans = -ans;                    for(int l = i;l < n;l++)                        swap(mat[i][l],mat[j][l]);                }            }            ans = (ll)ans*mat[i][i] % mod1;        }        return (ans+mod1)%mod1;    }};int matrix[maxn][maxn];void multi(Node& a,Node& b,int n){     for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            matrix[i][j] = 0;    for(int i = 0;i < n; i++){        for(int j = 0;j < n; j++){            if(a.mat[i][j] == 0) continue;            for(int k = 0;k < n; k++){                if(b.mat[j][k] == 0) continue;                matrix[i][k] = (matrix[i][k]+(ll)a.mat[i][j]*b.mat[j][k])%p;            }        }    }    for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            a.mat[i][j] = matrix[i][j];}int mp[maxn][maxn];int main(){    int t,n,m,q,u,v;    Node a,b,c;    scanf("%d",&t);    while(t--){        scanf("%d%d%d%d",&n,&m,&p,&q);        c.init();        for(int i = 0;i < m; i++){            scanf("%d%d",&u,&v);            u--,v--;            c.mat[u][u]++;            c.mat[v][v]++;            c.mat[u][v] = c.mat[v][u] = -1;        }        if(q < n-1){            printf("0\n");            continue;        }        int ans = c.Det(n-1,p);        if(ans == 0){            printf("0\n");            continue;        }        a.init();        b.one(n);        for(int i = 1;i < n; i++)            a.mat[i][i] = i,a.mat[i][i-1] = n-i;        while(q){            if(q&1) multi(b,a,n);            multi(a,a,n);            q/=2;        }        ans = (ll)ans*b.mat[n-1][0]%p;        printf("%d\n",ans);    }    return 0;}
                                             ^
0_0_20614692_4228.cpp:6:26: error: 'define' does not name a type
     using namespace std;#define ll long long#define maxn 101int p;struct Node{    int mat[maxn][maxn];    void init(){        memset(mat,0,sizeof(mat));    }    void one(int n){        init();        for(int i = 0;i < n; i++)            mat[i][i] = 1;    }    int Det(int n,  int mod1){         int ans = 1;        int *p1,*p2,mul;         for(int i = 0;i < n; i++){            for(int j = i+1;j < n; j++){                while(mat[i][i] != 0 && mat[j][i] != 0){                    if(abs(mat[i][i]) > abs(mat[j][i]))                        p1=mat[i],p2=mat[j],mul=mat[i][i]/mat[j][i];                    else                        p1=mat[j],p2=mat[i],mul=mat[j][i]/mat[i][i];                    for(int l = i;l < n; l++)                        p1[l] = (p1[l]-(ll)p2[l]*mul)%mod1;                }                if(mat[i][i] == 0){                    ans = -ans;                    for(int l = i;l < n;l++)                        swap(mat[i][l],mat[j][l]);                }            }            ans = (ll)ans*mat[i][i] % mod1;        }        return (ans+mod1)%mod1;    }};int matrix[maxn][maxn];void multi(Node& a,Node& b,int n){     for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            matrix[i][j] = 0;    for(int i = 0;i < n; i++){        for(int j = 0;j < n; j++){            if(a.mat[i][j] == 0) continue;            for(int k = 0;k < n; k++){                if(b.mat[j][k] == 0) continue;                matrix[i][k] = (matrix[i][k]+(ll)a.mat[i][j]*b.mat[j][k])%p;            }        }    }    for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            a.mat[i][j] = matrix[i][j];}int mp[maxn][maxn];int main(){    int t,n,m,q,u,v;    Node a,b,c;    scanf("%d",&t);    while(t--){        scanf("%d%d%d%d",&n,&m,&p,&q);        c.init();        for(int i = 0;i < m; i++){            scanf("%d%d",&u,&v);            u--,v--;            c.mat[u][u]++;            c.mat[v][v]++;            c.mat[u][v] = c.mat[v][u] = -1;        }        if(q < n-1){            printf("0\n");            continue;        }        int ans = c.Det(n-1,p);        if(ans == 0){            printf("0\n");            continue;        }        a.init();        b.one(n);        for(int i = 1;i < n; i++)            a.mat[i][i] = i,a.mat[i][i-1] = n-i;        while(q){            if(q&1) multi(b,a,n);            multi(a,a,n);            q/=2;        }        ans = (ll)ans*b.mat[n-1][0]%p;        printf("%d\n",ans);    }    return 0;}
                          ^
0_0_20614692_4228.cpp:6:91: error: 'maxn' was not declared in this scope
     using namespace std;#define ll long long#define maxn 101int p;struct Node{    int mat[maxn][maxn];    void init(){        memset(mat,0,sizeof(mat));    }    void one(int n){        init();        for(int i = 0;i < n; i++)            mat[i][i] = 1;    }    int Det(int n,  int mod1){         int ans = 1;        int *p1,*p2,mul;         for(int i = 0;i < n; i++){            for(int j = i+1;j < n; j++){                while(mat[i][i] != 0 && mat[j][i] != 0){                    if(abs(mat[i][i]) > abs(mat[j][i]))                        p1=mat[i],p2=mat[j],mul=mat[i][i]/mat[j][i];                    else                        p1=mat[j],p2=mat[i],mul=mat[j][i]/mat[i][i];                    for(int l = i;l < n; l++)                        p1[l] = (p1[l]-(ll)p2[l]*mul)%mod1;                }                if(mat[i][i] == 0){                    ans = -ans;                    for(int l = i;l < n;l++)                        swap(mat[i][l],mat[j][l]);                }            }            ans = (ll)ans*mat[i][i] % mod1;        }        return (ans+mod1)%mod1;    }};int matrix[maxn][maxn];void multi(Node& a,Node& b,int n){     for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            matrix[i][j] = 0;    for(int i = 0;i < n; i++){        for(int j = 0;j < n; j++){            if(a.mat[i][j] == 0) continue;            for(int k = 0;k < n; k++){                if(b.mat[j][k] == 0) continue;                matrix[i][k] = (matrix[i][k]+(ll)a.mat[i][j]*b.mat[j][k])%p;            }        }    }    for(int i = 0;i < n; i++)        for(int j = 0;j < n; j++)            a.mat[i][j] = matrix[i][j];}int mp[maxn][maxn];int main(){    int t,n,m,q,u,v;    Node a,b,c;    scanf("%d",&t);    while(t--){        scanf("%d%d%d%d",&n,&m,&p,&q);        c.init();        for(int i = 0;i < m; i++){            scanf("%d%d",&u,&v);            u--,v--;            c.mat[u][u]++;            c.mat[v][v]++;            c.mat[u][v] = c.mat[v][u] = -1;        }        if(q < n-1){            printf("0\n");            continue;        }        int ans = c.Det(n-1,p);        if(ans == 0){            printf("0\n");            continue;        }        a.init();        b.one(n);        for(int i = 1;i < n; i++)            a.mat[i][i] = i,a.mat[i][i-1] = n-i;        while(q){            if(q&1) multi(b,a,n);            multi(a,a,n);            q/=2;        }        ans = (ll)ans*b.mat[n-1][0]%p;        printf("%d\n",ans);    }    return 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-05-18 18:33:16, Gzip enabled