设为首页 加入收藏

TOP

HDU--4901--The Romantic Hero(二)
2015-07-20 17:59:58 来源: 作者: 【 】 浏览:6
Tags:HDU--4901--The Romantic Hero
f(y)); for(i=1;i<=n;i++) { scanf("%d",&s[i]); x[i][s[i]]=1; //单个元素也算一个方案 for(j=0;j<1024;j++) //遍历所有值,把前一条分割线的方案全部异或到当前分割线的方案中来 { x[i][j]=(x[i][j]+x[i-1][j])%mod; //传递方案数,这就是x[i]包含了所有x[i-j](j>0)中方案数的原因 x[i][j^s[i]]=(x[i][j^s[i]]+x[i-1][j])%mod; //把这些方案异或当前的这个值得到的新的方案存起来 } } LL sum=0; for(i=n;i>1;i--) { y[i][s[i]]=1; //单个元素也算一个方案 for(j=0;j<1024;j++) //遍历所有值 if(y[i+1][j]) //如果这个值为j的方案数存在 y[i][j&s[i]]=(y[i][j&s[i]]+y[i+1][j])%mod; //那么把这个方案跟当前元素与运算之后得到新方案 for(j=0;j<1024;j++) //把得到的所有新方案加起来 sum=(sum+x[i-1][j]*y[i][j])%mod; for(j=0;j<1024;j++) //把先前的旧方案传递过来 y[i][j]=(y[i][j]+y[i+1][j])%mod; } printf("%I64d\n",sum); } return 0; }

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇uva10130 - SuperSale(01背包) 下一篇hiho一下第五周 数字三角形

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: