[JLOI2015]战争调度
[JLOI2015]战争调度
题目
解题报告
考试打了个枚举的暴力,骗了20= =
$qsy$大佬的$DP$:
其实就是枚举= =,只不过枚举的比较强= =
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- using namespace std;
- inline int read(){
- int sum();
- char ch(getchar());
- for(;ch<''||ch>'';ch=getchar());
- for(;ch>=''&&ch<='';sum=sum*+(ch^),ch=getchar());
- return sum;
- }
- typedef long long L;
- int n,m,tot;
- L w[][],f[][];
- L dp[][];
- inline void dfs(int rt,int dep,int st){
- memset(dp[rt],,sizeof(dp[rt]));
- if(dep==n-){
- for(int i=;i<dep;++i){
- if(st&(<<i))
- dp[rt][]+=w[rt][i];
- else
- dp[rt][]+=f[rt][i];
- }
- return;
- }
- int size(<<(n-dep-));
- dfs(rt<<,dep+,st);
- dfs(rt<<|,dep+,st);
- for(int i=;i<=(size>>);++i){
- if(i>m)
- break;
- for(int j=;j<=(size>>);++j){
- if(i+j>m)
- break;
- dp[rt][i+j]=max(dp[rt][i+j],dp[rt<<][i]+dp[rt<<|][j]);
- }
- }
- dfs(rt<<,dep+,st|(<<dep));
- dfs(rt<<|,dep+,st|(<<dep));
- for(int i=;i<=(size>>);++i){
- if(i>m)
- break;
- for(int j=;j<=(size>>);++j){
- if(i+j>m)
- break;
- dp[rt][i+j]=max(dp[rt][i+j],dp[rt<<][i]+dp[rt<<|][j]);
- }
- }
- }
- int main(){
- n=read(),m=read(),tot=(<<n)-;
- for(int i=;i<=(<<(n-));++i)
- for(int j=n-;j>=;--j)
- w[(<<(n-))+i-][j]=read();
- for(int i=;i<=(<<(n-));++i)
- for(int j=n-;j>=;--j)
- f[(<<(n-))+i-][j]=read();
- dfs(,,);
- L ans();
- for(int i=;i<=m;++i)
- ans=max(ans,dp[][i]);
- printf("%lld",ans);
- }
[JLOI2015]战争调度的更多相关文章
- 【BZOJ4007】[JLOI2015]战争调度(动态规划)
[BZOJ4007][JLOI2015]战争调度(动态规划) 题面 BZOJ 洛谷 题解 神仙题,我是做不来. 一个想法是设\(f[i][j]\)表示当前考虑到\(i\)节点,其子树内有\(j\)个人 ...
- 【bzoj4007】[JLOI2015]战争调度 暴力+树形背包dp
题目描述 给你一棵 $n$ 层的完全二叉树,每个节点可以染黑白两种颜色.对于每个叶子节点及其某个祖先节点,如果它们均为黑色则有一个贡献值,如果均为白色则有另一个贡献值.要求黑色的叶子节点数目不超过 $ ...
- 【bzoj4007】[JLOI2015]战争调度 暴力+树形dp
Description 脸哥最近来到了一个神奇的王国,王国里的公民每个公民有两个下属或者没有下属,这种 关系刚好组成一个 n 层的完全二叉树.公民 i 的下属是 2 * i 和 2 * i +1.最下 ...
- BZOJ4007 [JLOI2015]战争调度
根本想不出来... 原来还是暴力出奇迹啊QAQ 无限ymymym中 /************************************************************** Pr ...
- [BZOJ4007][JLOI2015]战争调度(DP+主定理)
第一眼DP,发现不可做,第二眼就只能$O(2^{1024})$暴搜了. 重新审视一下这个DP,f[x][i]表示在x的祖先已经全部染色之后,x的子树中共有i个参战平民的最大贡献. 设k为总结点数,对于 ...
- 【题解】JLOI2015战争调度
搜索+状压+DP. 注意到一个性质:考虑一棵以x为根的子树,在x到原树的根的路径上的点如果都已经确定了方案,那么x的左右儿子的决策就彼此独立,互不影响了.所以我们考虑状压一条路径上每一层节点的状态,求 ...
- 【BZOJ 4007】[JLOI2015]战争调度 DP+搜索+状压
又是一道思路清新的小清晰. 观察题目,如果我们确定了平民或者贵族的任意一方,我们便可以贪心的求出另一方,至此20分:我们发现层数十分小,那么我们就也是状压层数,用lca转移,线性dp,至此50分(好像 ...
- bzoj4007 & loj2111 [JLOI2015]战争调度 复杂度分析+树上背包
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4007 https://loj.ac/problem/2111 题解 同 [NOI2006]网络 ...
- [JLOI2015]战争调度【暴力+树形Dp】
Online Judge:Bzoj4007,Luogu P3262 Label:暴力,树形Dp 题解 参考了这篇blog https://www.cnblogs.com/GXZlegend/p/830 ...
随机推荐
- Scikit-learn库中的数据预处理:独热编码(二)
在上一篇博客中介绍了数值型数据的预处理但是真实世界的数据集通常都含有分类型变量(categorical value)的特征.当我们讨论分类型数据时,我们不区分其取值是否有序.比如T恤尺寸是有序的,因为 ...
- NET运用String的十八层境界
古往今来,文本处理一直是所有编程语言的最基础的功能,也是最核心最重要的功能.任何初学者,如果想学一门编程语言,都要面对大量的文本处理.而或许有一天,即使你成了大师级的人物,也不敢说自己驾驭文本处理的能 ...
- target属性打开方式
在HTML中target目标的四个参数的用法:1.target="_self"表示:将链接的画面内容,显示在目前的视窗中.(内定值) . 即:同(自己)窗口打开,别的数据还存在,相 ...
- [Swift通天遁地]八、媒体与动画-(3)实现视频播放的水印、Overlay、暂停时插入广告等效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Salvation -- ---广搜 + 限定方向 ,
这个欣求 , 在迷宫里密室了方向 , 走过了一个地方 不做标记 还一个劲 , 找不到媳妇不亏 . 这个题 我跳了两个坑 , 1 : 习惯性添加标记走过的 位置 ,导致所有的位置都能 走过一遍 , ...
- JavaScript--认识DOM
文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码: 将HTM ...
- Laravel5.1学习笔记13 系统架构5 Contract
Contract 简介 为什么要用 Contract? Contract 参考 如何使用 Contract 简介 Laravel 中的 Contract 是一组定义了框架核心服务的接口.例如,Illu ...
- Windows10开启热点
1.以网线的连接方式,已经连接. 2.打开CMD 3. 开启热点 3.1设置热点名称和密码 netsh wlan set hostednetwork mode=allow ssid=name key= ...
- React容器组件和展示组件
Presentational and Container Components 展示组件 - 只关心它们的样子. - 可能同时包含子级容器组件和展示组件,一般含DOM标签和自定的样式. ...
- Android开发笔记(5)——方法调用(基础)
转载请注明——博客园igoslly:http://www.cnblogs.com/igoslly/p/6833544.html 在实际方法调用中,程序按顺序逐句执行,直到“}”结束. 为避免程序大 ...