LA4794 Sharing Chocolate
Posted Achen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LA4794 Sharing Chocolate相关的知识,希望对你有一定的参考价值。
记忆化搜索。
在下觉得sxy大佬的代码写得相当好,通篇的骚操作(因为我都不会呀),%%% 学到了
预处理每个状态的值。以前的我都是zz地枚举每一位。。
for(int i=1;i<(1<<n);++i) {
x=(i&(-i));
if(i==x) continue;
tot[i]=tot[x]+tot[i^x];
}
f[r][s]==1表示搜索过且不合法,f[r][s]==2表示搜索过且合法
if
(f[r][s])
return
f[r][s]-1;
若是只剩一块巧克力要分
if
(s==(s&(-s)))
return
f[r][s]=2,1;
枚举子集,y为x在s下的补集
for
(x=(s-1)&s;x;x=(x-1)&s) {
y=s-x;
}
两维状态值相加或相乘为定值时,用一维来代替也是一个常见的套路。
以上是关于LA4794 Sharing Chocolate的主要内容,如果未能解决你的问题,请参考以下文章
UVa Live 4794 - Sharing Chocolate 枚举子集substa = (s - 1) & substa,记忆化搜索 难度: 2
javascript 保存自https://classroom.udacity.com/nanodegrees/nd001/parts/4942f4d7-a48d-4794-9eb0-404b3ed3
javascript 保存自https://classroom.udacity.com/nanodegrees/nd001/parts/4942f4d7-a48d-4794-9eb0-404b3ed3
javascript 保存自https://classroom.udacity.com/nanodegrees/nd001/parts/4942f4d7-a48d-4794-9eb0-404b3ed3
javascript 保存自https://classroom.udacity.com/nanodegrees/nd001/parts/4942f4d7-a48d-4794-9eb0-404b3ed3
javascript 保存自https://classroom.udacity.com/nanodegrees/nd001/parts/4942f4d7-a48d-4794-9eb0-404b3ed3