/ Vijos /

记录详情

Compile Error

foo.cpp:1:17: warning: extra tokens at end of #include directive
 #include<cstdio>#include<cstdlib>#include<map>#include<bitset>#include<algorithm>using namespace std;const int MAXN=3, MAXM=50, MAXNUM=MAXN*MAXM+1;const int MOD=11192869;void inc(int &a, int b){ if((a+=b)>=MOD)  a-=MOD;}int N,M;struct status{ bitset<MAXNUM+1> use; int a[MAXN], w; int pre_suc(int t) {  if(t<0)   return 3;  return (t==1 || use[t-1])<<1 | (t==N*M || use[t+1]); } int pre_suc_a(int t) {  return pre_suc(a[t]); } void add(int j); bool adj(int j,int k) {  return a[j]==k || (j && a[j-1]==k); } void work(int j, int k) {  if(!use[k] && use[k-1]==adj(j, k-1) && use[k+1]==adj(j, k+1))  {   int t=a[j];   use[k]=1;   a[j]=k;   add(j+1);   a[j]=t;   use[k]=0;  } }};map<int,status> f[MAXN+1];void status::add(int j){ int i, t=0; for(i=0;i<N;++i)  t=(t*MAXNUM+max(a[i],0))*4+pre_suc_a(i); if(f[j].count(t))  inc(f[j][t].w, w); else f[j][t]=*this;}int T[MAXN][MAXM], L[MAXNUM];int main(){#ifndef ONLINE_JUDGE freopen("trip.in","r",stdin); freopen("trip.out","w",stdout);#endif int i,j,k; scanf("%d%d",&N,&M); for(i=0;i<N;++i)  for(j=0;j<M;++j)   scanf("%d",T[i]+j); for(i=1;i<=N*M;++i)  scanf("%d",L+i); map<int,status>::iterator it, tmp; status init; init.a[0]=init.a[1]=init.a[2]=-1, init.w=1; init.add(N); for(i=0;i<M;++i) {  f[0].swap(f[N]);  for(j=1;j<=N;++j)   f[j].clear();  for(it=f[0].begin(); it!=f[0].end(); )   if(it->second.pre_suc_a(N-1)==0)   {    tmp=it++;    f[0].erase(tmp);   }   else ++it;  for(j=0;j<N;++j)  {   bool side= i==0 || i==M-1 || j==0 || j==N-1;   for(it=f[j].begin(); it!=f[j].end(); ++it)   {    status &now=it->second;    int up=now.pre_suc_a(j);    int left= j ? now.pre_suc_a(j-1) : 3;    if(up==3 && left)    {     if(i || j)     {      k= now.a[i?j:j-1]&1 ? 2 : 1;      if(k<1+!side)       k+=2;      for(; k<=N*M; k+=2)       if(L[k]==T[j][i])        now.work(j,k);     }     else for(k=1; k<=N*M; ++k)      if(L[k]==T[j][i])       now.work(j,k);    }    else if(up==3 || left)    {     int mid=now.a[left ? j : j-1];     for(k=mid-1; k<=N*M && k<=mid+1; k+=2)      if(k>0 && (side || k>1)      && L[k]==T[j][i])       now.work(j,k);    }    else if(abs(now.a[j-1]-now.a[j])==2)    {     k=(now.a[j-1]+now.a[j])>>1;     if(L[k]==T[j][i])      now.work(j,k);    }   }  } } int ans=0; for(it=f[N].begin(); it!=f[N].end(); ++it)  inc(ans, it->second.w); printf("%d\n",ans); return 0;}
                 ^
C:/TDM-GCC-32/bin/../lib/gcc/mingw32/4.9.2/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status

信息

递交者
类型
递交
题目
P1735 旅行路线
语言
C++
递交时间
2015-06-01 19:44:30
评测时间
2015-06-01 19:44:30
评测机
分数
0
总耗时
0ms
峰值内存
0 Bytes