LA4794 Sharing Chocolate
2024-10-08 00:19:29
记忆化搜索。
在下觉得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;
}
两维状态值相加或相乘为定值时,用一维来代替也是一个常见的套路。
最新文章
- Java IO流学习总结
- google浏览器打开报出文件不可读解决方案
- Linux makefile 教程 非常详细,且易懂
- Who Says What to Whom on Twitter-www2011-20160512
- Map集合遍历的2种方法
- js中定时器的使用
- html5浮动、等高、弹性盒模型
- <;xliff:g>;标签
- ABBYY FineReader的图像编辑器功能使用方法
- MySql服务器的启动和关闭
- NeatUpload 同时选择并上传多个文件
- git的安装已经连github
- ACdream 1427 Nice Sequence
- 转:【Java集合源码剖析】Hashtable源码剖析
- 第一章 Linux系统介绍与环境搭建准备
- 负载均衡之让nginx跑起来
- 【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)
- 关于Java方法重载
- JavaScript是如何工作的:事件循环和异步编程的崛起 + 5种使用 async/await 更好地编码方式!
- matplotlib画sin(x)和cos(x)/2