Solution -「JLOI 2015」「洛谷 P3262」战争调度
\(\mathcal{Description}\)
Link.
给定一棵 \(n\) 层的完全二叉树,你把每个结点染成黑色或白色,满足黑色叶子个数不超过 \(m\)。对于一个叶子 \(u\),若其 \(k\) 级父亲与其同为黑色,则对答案贡献 \(a_{uk}\);若同为白色,则对答案贡献 \(b_{uk}\)。求最大贡献和。
\(n\le10\)。
\(\mathcal{Solution}\)
想要 DP,比如令 \(f(u,i)\) 表示 \(u\) 子树内有 \(i\) 个叶子为黑色时的最大贡献和。但发现这根本没法转移 qwq。
那……爆搜呢?
从上往下搜索,直接钦定当前非叶结点是黑是白,搜到叶子时,在向上计算当前叶子是黑色/白色时的贡献,回溯时简单背包。复杂度 \(\mathcal O(n4^n)\),可过欸!
\(\mathcal{Code}\)
/* Clearink */
#include <cstdio>
const int MAXN = 10;
int n, m, a[1 << MAXN | 5][MAXN + 5], b[1 << MAXN | 5][MAXN + 5];
int f[1 << MAXN | 5][1 << MAXN | 5];
bool fight[1 << MAXN | 5];
inline void chkmax ( int& a, const int b ) { a < b && ( a = b, 0 ); }
inline void solve ( const int u, const int d ) {
for ( int i = 0; i <= 1 << d; ++ i ) f[u][i] = 0;
if ( !d ) {
for ( int i = 1; i <= n; ++ i ) {
if ( fight[u >> i] ) f[u][1] += a[u][i];
else f[u][0] += b[u][i];
}
} else {
for ( int k = 0; k <= 1; ++ k ) {
fight[u] = k;
solve ( u << 1, d - 1 ), solve ( u << 1 | 1, d - 1 );
for ( int i = 0; i <= 1 << d >> 1; ++ i ) {
for ( int j = 0; j <= 1 << d >> 1; ++ j ) {
chkmax ( f[u][i + j], f[u << 1][i] + f[u << 1 | 1][j] );
}
}
}
}
}
int main () {
scanf ( "%d %d", &n, &m ), -- n;
for ( int i = 0; i < 1 << n; ++ i ) {
for ( int j = 1; j <= n; ++ j ) {
scanf ( "%d", &a[( 1 << n ) + i][j] );
}
}
for ( int i = 0; i < 1 << n; ++ i ) {
for ( int j = 1; j <= n; ++ j ) {
scanf ( "%d", &b[( 1 << n ) + i][j] );
}
}
solve ( 1, n );
int ans = 0;
for ( int i = 0; i <= m; ++ i ) chkmax ( ans, f[1][i] );
printf ( "%d\n", ans );
return 0;
}
Solution -「JLOI 2015」「洛谷 P3262」战争调度的更多相关文章
- 「区间DP」「洛谷P1043」数字游戏
「洛谷P1043」数字游戏 日后再写 代码 /*#!/bin/sh dir=$GEDIT_CURRENT_DOCUMENT_DIR name=$GEDIT_CURRENT_DOCUMENT_NAME ...
- Solution -「JSOI 2019」「洛谷 P5334」节日庆典
\(\mathscr{Description}\) Link. 给定字符串 \(S\),求 \(S\) 的每个前缀的最小表示法起始下标(若有多个,取最小的). \(|S|\le3\time ...
- Solution -「洛谷 P4372」Out of Sorts P
\(\mathcal{Description}\) OurOJ & 洛谷 P4372(几乎一致) 设计一个排序算法,设现在对 \(\{a_n\}\) 中 \([l,r]\) 内的元素排 ...
- Solution -「POI 2010」「洛谷 P3511」MOS-Bridges
\(\mathcal{Description}\) Link.(洛谷上这翻译真的一言难尽呐. 给定一个 \(n\) 个点 \(m\) 条边的无向图,一条边 \((u,v,a,b)\) 表示从 ...
- Solution -「APIO 2016」「洛谷 P3643」划艇
\(\mathcal{Description}\) Link & 双倍经验. 给定 \(n\) 个区间 \([a_i,b_i)\)(注意原题是闭区间,这里只为方便后文描述),求 \(\ ...
- 「洛谷4197」「BZOJ3545」peak【线段树合并】
题目链接 [洛谷] [BZOJ]没有权限号嘤嘤嘤.题号:3545 题解 窝不会克鲁斯卡尔重构树怎么办??? 可以离线乱搞. 我们将所有的操作全都存下来. 为了解决小于等于\(x\)的操作,那么我们按照 ...
- 「洛谷3338」「ZJOI2014」力【FFT】
题目链接 [BZOJ] [洛谷] 题解 首先我们需要对这个式子进行化简,否则对着这么大一坨东西只能暴力... \[F_i=\sum_{j<i} \frac{q_iq_j}{(i-j)^2}-\s ...
- 「BZOJ2733」「洛谷3224」「HNOI2012」永无乡【线段树合并】
题目链接 [洛谷] 题解 很明显是要用线段树合并的. 对于当前的每一个连通块都建立一个权值线段树. 权值线段树处理操作中的\(k\)大的问题. 如果需要合并,那么就线段树暴力合并,时间复杂度是\(nl ...
- 「洛谷3870」「TJOI2009」开关【线段树】
题目链接 [洛谷] 题解 来做一下水题来掩饰ZJOI2019考炸的心情QwQ. 很明显可以线段树. 维护两个值,\(Lazy\)懒标记表示当前区间是否需要翻转,\(s\)表示区间还有多少灯是亮着的. ...
随机推荐
- 学习javaScript必知必会(1)~js介绍、函数、匿名函数、自调用函数、不定长参数
一.简单了解一下JavaScript(js) 1.什么是js? js:是网景公司开发的,是基于客户端浏览器, 面向(基于)对象.事件驱动式的页面脚本语言. 2.什么场景下使用到js? 表单验证.页面特 ...
- 《剑指offer》面试题43. 1~n整数中1出现的次数
问题描述 输入一个整数 n ,求1-n这n个整数的十进制表示中1出现的次数. 例如,输入12,1-12这些整数中包含1 的数字有1.10.11和12,1一共出现了5次. 示例 1: 输入:n = 12 ...
- JavaScript DOM 基础操作
JavaScript DOM 基础操作 一.获取元素的六方式 document.getElementById('id名称') //根据id名称获取 document.getElementsByclas ...
- 为什么JavaWeb要分层
首先bai让我们坐着时光机回到n年前的web开发.那个时候最早du都是静态的html页面,zhi后来有了数据库,有了所谓dao的动态页面,然后程序猿在编码的时候,会把所有的代码都写在页面上,包括数据库 ...
- 【小实验】rust的数组是在堆上分配还是在栈上分配的呢?
先看代码: fn main(){ let v = [1,2,3,4,5]; let addr = &v[0] as *const i32 as usize; println!("ar ...
- PC端实用正版软件推荐
首先介绍一下背景,我本人是一个软件工程师,所以对电脑上很多软件使用都有要求,这里将个人觉得好用的一些软件分享给大家: 1. Typora 对于长写本地笔记.网络博客的人,对 MarkDown 格式应该 ...
- Linux 总结
查看端口 lsof -i:8000 查看进程 ps -ef | grep python netstat -tunlp |grep 端口号 拷贝 cp 文件 生成文件名 做软连接找到目标文件目录 ...
- 「 MySQL高级篇 」MySQL索引原理,设计原则
大家好,我是melo,一名大二后台练习生,大年初三,我又来充当反内卷第一人了!!! 专栏引言 MySQL,一个熟悉又陌生的名词,早在学习Javaweb的时候,我们就用到了MySQL数据库,在那个阶段, ...
- 张高兴的 .NET IoT 入门指南:(七)制作一个气象站
距离上一篇<张高兴的 .NET Core IoT 入门指南>系列博客的发布已经过去 2 年的时间了,2 年的时间 .NET 版本发生了巨大的变化,.NET Core 也已不复存在,因此本系 ...
- Redis 常见面试题(2020最新版)
阶段汇总集合:001期~180期汇总,方便阅读(增加设计模式) 概述 什么是Redis Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可) ...