Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:再来一个25行的插头DP的AC代码,具体就不解释了XDIn Reply To:再来一个25行的插头DP的AC代码,具体就不解释了XD Posted by:Sayakiss at 2010-08-10 09:57:09 > #include<iostream> > #include<cstring> > using namespace std; > long long f[2][1<<12],i,j,ps,p=0,c=1,n,m; > int main() > { > while (scanf("%d%d",&n,&m),n!=0) > { > memset(f[c],0,sizeof(f[c])); > f[c][(1<<m)-1]=1; > for (i=0;i<n;i++) > for (j=0;j<m;j++) > { > swap(p,c);memset(f[c],0,sizeof(f[c])); > for (ps=0;ps<1<<m;ps++) > if (f[p][ps]) > { > if (j>0&&(!(ps&(1<<j-1)))&&(ps&(1<<j))) f[c][ps|1<<(j-1)]+=f[p][ps]; > if (!(ps&1<<j)) f[c][ps|1<<j]+=f[p][ps]; > if (ps&1<<j) f[c][ps^1<<j]+=f[p][ps]; > } > } > printf("%lld\n",f[c][(1<<m)-1]); > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator