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_20614658_12379.cpp:22:115: error: stray '#' in program
      pll;typedef complex<ld> point;typedef pair<int, int> pii;typedef pair<pii, int> piii;typedef vector<int> vi; #define CLR(x,y) memset(x,y,sizeof(x))#define CPY(x,y) memcpy(x,y,sizeof(x))#define clr(a,x,size) memset(a,x,sizeof(a[0])*(size))#define cpy(a,x,size) memcpy(a,x,sizeof(a[0])*(size))#define debug(a) cout << #a" = " << (a) << endl;#define debugarry(a, n) for (int i = 0; i < (n); i++) { cout << #a"[" << i << "] = " << (a)[i] << endl; } #define mp(x,y) make_pair(x,y)#define pb(x) push_back(x)#define lowbit(x) (x&(-x)) #define MID(x,y) (x+((y-x)>>1))#define ls (idx<<1)#define rs (idx<<1|1)#define lson ls,l,mid#define rson rs,mid+1,r template<class T>inline bool read(T &n){    T x = 0, tmp = 1;    char c = getchar();    while((c < '0' || c > '9') && c != '-' && c != EOF) c = getchar();    if(c == EOF) return false;    if(c == '-') c = getchar(), tmp = -1;    while(c >= '0' && c <= '9') x *= 10, x += (c - '0'),c = getchar();    n = x*tmp;    return true;}template <class T>inline void write(T n){    if(n < 0)    {        putchar('-');        n = -n;    }    int len = 0,data[20];    while(n)    {        data[len++] = n%10;        n /= 10;    }    if(!len) data[len++] = 0;    while(len--) putchar(data[len]+48);} const int MAXN=10240;const int MAXM=40000; struct ISAP{    struct nedge    {        int u,v,next;        ll c;    } e[MAXM*2];    int head[MAXN],tot,n;    int ss,tt;     void Resize(int n)    {        this->n=n;    }     void Clearall()    {        tot=1;        CLR(head,0);    }     void addedge(int u,int v,ll w)    {        e[++tot].v=v;        e[tot].u=u;        e[tot].c=w;        e[tot].next=head[u];        head[u]=tot;        e[++tot].v=u;        e[tot].u=v;        e[tot].c=0;        e[tot].next=head[v];        head[v]=tot;    }     int dep[MAXN],gap[MAXN];     void bfs()    {        CLR(dep,-1);        CLR(gap,0);        queue<int> que;        gap[0]=1;        dep[tt]=0;        que.push(tt);        while(!que.empty())        {            int u=que.front();            que.pop();            for(int i=head[u]; i; i=e[i].next)                if(dep[e[i].v]==-1)                {                    que.push(e[i].v);                    dep[e[i].v]=dep[u]+1;                    ++gap[dep[e[i].v]];                }        }    }     int res,cur[MAXN],num[MAXN];    int top;    int MaxFlow(int s,int t)    {        this->ss=s;        this->tt=t;        bfs();        top=res=0;        memcpy(cur,head,sizeof(head));        int u=ss,i;        while(dep[ss]<n)        {            if(u==tt)            {                int temp=INF;                int inser;                for(i=0; i<top; i++)                    if(temp>e[num[i]].c)                    {                        temp=e[num[i]].c;                        inser=i;                    }                for(i=0; i<top; i++)                {                    e[num[i]].c-=temp;                    e[num[i]^1].c+=temp;                }                res+=temp;                top=inser;                u=e[num[top]].u;            }            if(u!=tt && gap[dep[u]-1]==0)                break;            for(i=cur[u]; i; i=e[i].next)                if(e[i].c != 0 && dep[u]==dep[e[i].v]+1)                    break;            if(i)            {                cur[u]=i;                num[top++]=i;                u=e[i].v;            }            else            {                int mi=n;                for(i=head[u]; i; i=e[i].next)                    if(e[i].c>0 && mi>dep[e[i].v])                    {                        mi=dep[e[i].v];                        cur[u]=i;                    }                --gap[dep[u]];                dep[u]=mi+1;                ++gap[dep[u]];                if(u!=ss)                    u=e[num[--top]].u;            }        }        return res;    }     void print()    {        puts("GRAPH:");        for(int i=0; i<=n; i++)        {            if(!head[i])                continue;            printf("%d ->",i);            for(int j=head[i]; j; j=e[j].next)                printf("%d(%I64d) ",e[j].v,e[j].c);            putchar('\n');        }    }}g; static int tim; struct Node{    Node *ln[2];    int cost[2],idx;    bool f;     void init()    {        f=0;        idx=tim++;        memset(ln,0,sizeof ln);        memset(cost,INF,sizeof cost);    }}; struct Trie{    Node T[MAXN];    int cnt,pos[MAXN];    Node *rt;     Node* get()    {        T[cnt].init();        return &T[cnt++];    }     void init()    {        cnt=0;        rt=get();    }     void insert(int *s,int j)    {        Node *p=rt;        for(int i=0; i<8; i++)        {            int v=s[i];            if(p->ln[v]==NULL)  p->ln[v]=get();            p=p->ln[v];        }        p->f=1;        pos[j]=p->idx;    }     void find(char *s,int cost)    {        Node *p=rt;        for(int i=0; s[i]; i++)        {            int v=s[i]-'0';            if(p->ln[v]==NULL)  return;            if(s[i+1]==0)   p->cost[v]=min(p->cost[v],cost);            else    p=p->ln[v];        }    } } pre,su; int n,m,ss,tt;int a[9];char str[9],x[9]; void dfs(Node *p,int flag){    if(flag)    {        if(p->ln[0])        {            g.addedge(p->ln[0]->idx,p->idx,p->cost[0]);            dfs(p->ln[0],1);        }        if(p->ln[1])        {            g.addedge(p->ln[1]->idx,p->idx,p->cost[1]);            dfs(p->ln[1],1);        }    }    else    {        if(p->ln[0])        {            g.addedge(p->idx,p->ln[0]->idx,p->cost[0]);            dfs(p->ln[0],0);        }        if(p->ln[1])        {            g.addedge(p->idx,p->ln[1]->idx,p->cost[1]);            dfs(p->ln[1],0);        }    }} void build(){    for(int i=1; i<=n; i++)        g.addedge(pre.pos[i],su.pos[i],INF);    dfs(pre.rt,0);    dfs(su.rt ,1);} int main(){    int T,cas=1;    read(T);    while(T--)    {        scanf("%d %d",&n,&m);        tim=0;        pre.init();su.init();g.Clearall();        for(int i=1,x; i<=n; i++)        {            scanf("%d",&x);            for(int j=0; j<8; j++)                if(x&(1<<7-j))  a[j]=1;                else    a[j]=0;            pre.insert(a,i);            for(int j=0; j<8; j++)                if(x&(1<<j))    a[j]=1;                else    a[j]=0;            su.insert(a,i);        }        g.Resize(tim);        ss=0;        tt=su.rt->idx;        for(int i=1,cost; i<=m; i++)        {            scanf("%s %s %d",str,x,&cost);            if(str[0]=='P') pre.find(x,cost);            else            {                int len=strlen(x);                reverse(x,x+len);                su.find(x,cost);            }        }        build();        ll ans=g.MaxFlow(ss,tt);        printf("Case #%d: %lld\n",cas++,ans>=INF?-1:ans);    }    return 0;}
                                                                                                                   ^
0_0_20614658_12379.cpp:22:153: error: stray '#' in program
      pll;typedef complex<ld> point;typedef pair<int, int> pii;typedef pair<pii, int> piii;typedef vector<int> vi; #define CLR(x,y) memset(x,y,sizeof(x))#define CPY(x,y) memcpy(x,y,sizeof(x))#define clr(a,x,size) memset(a,x,sizeof(a[0])*(size))#define cpy(a,x,size) memcpy(a,x,sizeof(a[0])*(size))#define debug(a) cout << #a" = " << (a) << endl;#define debugarry(a, n) for (int i = 0; i < (n); i++) { cout << #a"[" << i << "] = " << (a)[i] << endl; } #define mp(x,y) make_pair(x,y)#define pb(x) push_back(x)#define lowbit(x) (x&(-x)) #define MID(x,y) (x+((y-x)>>1))#define ls (idx<<1)#define rs (idx<<1|1)#define lson ls,l,mid#define rson rs,mid+1,r template<class T>inline bool read(T &n){    T x = 0, tmp = 1;    char c = getchar();    while((c < '0' || c > '9') && c != '-' && c != EOF) c = getchar();    if(c == EOF) return false;    if(c == '-') c = getchar(), tmp = -1;    while(c >= '0' && c <= '9') x *= 10, x += (c - '0'),c = getchar();    n = x*tmp;    return true;}template <class T>inline void write(T n){    if(n < 0)    {        putchar('-');        n = -n;    }    int len = 0,data[20];    while(n)    {        data[len++] = n%10;        n /= 10;    }    if(!len) data[len++] = 0;    while(len--) putchar(data[len]+48);} const int MAXN=10240;const int MAXM=40000; struct ISAP{    struct nedge    {        int u,v,next;        ll c;    } e[MAXM*2];    int head[MAXN],tot,n;    int ss,tt;     void Resize(int n)    {        this->n=n;    }     void Clearall()    {        tot=1;        CLR(head,0);    }     void addedge(int u,int v,ll w)    {        e[++tot].v=v;        e[tot].u=u;        e[tot].c=w;        e[tot].next=head[u];        head[u]=tot;        e[++tot].v=u;        e[tot].u=v;        e[tot].c=0;        e[tot].next=head[v];        head[v]=tot;    }     int dep[MAXN],gap[MAXN];     void bfs()    {        CLR(dep,-1);        CLR(gap,0);        queue<int> que;        gap[0]=1;        dep[tt]=0;        que.push(tt);        while(!que.empty())        {            int u=que.front();            que.pop();            for(int i=head[u]; i; i=e[i].next)                if(dep[e[i].v]==-1)                {                    que.push(e[i].v);                    dep[e[i].v]=dep[u]+1;                    ++gap[dep[e[i].v]];                }        }    }     int res,cur[MAXN],num[MAXN];    int top;    int MaxFlow(int s,int t)    {        this->ss=s;        this->tt=t;        bfs();        top=res=0;        memcpy(cur,head,sizeof(head));        int u=ss,i;        while(dep[ss]<n)        {            if(u==tt)            {                int temp=INF;                int inser;                for(i=0; i<top; i++)                    if(temp>e[num[i]].c)                    {                        temp=e[num[i]].c;                        inser=i;                    }                for(i=0; i<top; i++)                {                    e[num[i]].c-=temp;                    e[num[i]^1].c+=temp;                }                res+=temp;                top=inser;                u=e[num[top]].u;            }            if(u!=tt && gap[dep[u]-1]==0)                break;            for(i=cur[u]; i; i=e[i].next)                if(e[i].c != 0 && dep[u]==dep[e[i].v]+1)                    break;            if(i)            {                cur[u]=i;                n


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-11-25 13:17:23, Gzip enabled