火星菌
来源:互联网 发布:.xyz是什么域名 编辑:程序博客网 时间:2024/04/27 15:15
题目大意及模型转换:
现在有这样一种填数约束,在区间l..r中填a..b的数,每个数只能填一次。那么需要满足:设mid=(l+r)/2,mid2=(a+b)/2。那么1、在区间l..mid中填a..mid2,在区间mid+1..r中填mid2+1..b。2、在区间l..mid中填mid2+1..b,在区间mid+1..r中填a..mid2。现在,要求你在区间1..2^K中填1..2^K,且若在相邻两个位置填j与k,那么需要花费w[j,k]。保证w[j,k]=w[k,j]。K<=9。
水DP:
设f[i,j,k,l]表示在区间i..j填数,其中第i个数必须填k,第j个数必须填l,那么转移显然。O(2^5K)
优化DP:
可以设f[i,j]表示填前i个数,第i个数填了j。那么f[i,k]=min(f[i-1,j]),其中j与k填在i-1与i必须合法。
保证合法:
归纳可得,如果在第i-1个位置填了j,那么在第i个位置可以填的合法k是一个连续范围,且包含lowbit(i-1)个元素。那么可以设st[i,j]与en[i,j]分别表示对于lowbit为j,填了i对应的范围开头与结尾。找规律得,我们可以让i从1开始,st[i..i+j-1,j]=i+j,st[i+j..i+2*j-1,j]=i,然后将i加上2*j继续上述过程。有了st易求en。DP初值只需将f[1,i]赋值为0。
0 0
- 火星菌
- 火星菌
- 火星
- GDOI2016模拟8.10火星菌
- 火星任务
- 火星帖
- 火星任务
- 火星没事
- 火星坐标
- 火星文
- 火星生命
- 火星计算器
- 火星计算器
- 火星计算器
- 《火星任务》
- 火星坐标
- 火星数字
- 火星坐标
- iOS入门(十九)NSString NSArray NSDictionary
- APM的前世今生:服务经验加速国内APM未来发展
- 推荐一些学习JAVA的书籍
- xcode,在webView中引入本地html,image,js,css文件的方法
- 24-IO流-57-IO流(序列化接口-Serializable)
- 火星菌
- PS几种抠图的方法
- 底层const能区分拷贝,固然也能区分函数重载
- Easy UI的树形菜单的异步加载
- 2015.08.11 通过Excel拼装sql语句
- 24-IO流-58-IO流(关键字-transient)
- MySQL Study之--MySQL关闭自动commit(autocommit)
- iOS研发之静态库的封装
- 通达OA 太牛了!工作流表单设计中级联菜单原来可以这样实现(图文)