【BZOJ3***】【JLOI2015】战争调度 war 搜索

链接:

#include <stdio.h>
int main()
{
    puts("转载请注明出处[vmurder]谢谢");
    puts("网址:blog.csdn.net/vmurder/article/details/45146301");
}

题解:

暴力是什么样呢? O(21023) 是也。

然后能过的算法是什么样呢?

首先对于一棵子树,如果根节点到整棵树的根节点这一部分节点的【挂机/送人头】的状态已经确定了,那么左子树的最优答案和右子树的最优答案就都是独立的,所以我们在这个时候就可以对左子树和右子树分别进行搜索。

然后 f(i,j) 表示节点 i 里有 j 个平民送人头 ※※ 且 i 的所有级父亲的【务农/参战】的状态已经确定的情况下 ※※ 的最优答案。

然后对于一个平民(就是一个叶子),因为是搜索,它的各级祖先的状态都确定,所以扫一遍 O(n) 就可以得到 f(i,0) 和 f(i,1) 的答案。咳咳,这里的 n 就是那个输入的 n ,最大是 10 哦。

然后这样的话扫到一个第 i 层的点并枚举其状态的次数是 2?2i?1,也就是 2i ,然后其处理方法是得到两个子树的状态后 O(2) 枚举俩子树都选了多少平民,然后发现左右子树各最多有 2n?i 个平民,所以是 O(22n?2i) 。

也就是说一个第i层的点需要的时间复杂度是 O(22n2i) 。

而第i层有 2i?1 个点,每层的时间复杂度是 O(22n2) 。

然后有n层,最终时间复杂度 O((n?1)22n2) 。

然后再算上每个平民扫 2n 次,每次 O(n?1),2n?1 个平民,

最终时间复杂度O((n?1)22n) ,这个嘛 O(9?220)。

哎如果我算错了也没有关系嘛,反正我现场AC了。时间复杂度基本就是这么算的,差了也差不了多少。

代码:

程序还没发下来,以后再贴
时间: 2024-07-30 03:29:38

【BZOJ3***】【JLOI2015】战争调度 war 搜索的相关文章

[JLOI2015]战争调度

[JLOI2015]战争调度 题目 解题报告 考试打了个枚举的暴力,骗了20= = $qsy$大佬的$DP$: 其实就是枚举= =,只不过枚举的比较强= = 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 inline int read(){ 6 int sum(0); 7 char ch(getchar()); 8 for(;ch<'0'||

BZOJ4007 [JLOI2015]战争调度

根本想不出来... 原来还是暴力出奇迹啊QAQ 无限ymymym中 1 /************************************************************** 2 Problem: 4007 3 User: rausen 4 Language: C++ 5 Result: Accepted 6 Time:240 ms 7 Memory:13216 kb 8 **************************************************

[JLOI 2015]战争调度

Description 题库链接 给你一棵 \(n\) 层的满二叉树,每个节点可选择为黑或者白.所有的叶子节点都会产生一定的贡献值,具体地,它与其祖先选色相同时会有特定的值(输入给定).问如何染色使得所有贡献和最大.并且规定染成黑色的叶子节点不能超过 \(m\) 个. \(1\leq n\leq 10\) Solution 容易发现一个节点的贡献只与其 \(n-1\) 个祖先有关.我们可以枚举祖先节点的状态进而得到每个叶子的贡献. 然后对于不能超过 \(m\) 个的限制,我们可以记 \(f_{i

JLOI2015 解题报告

那个嘛= =,虽说是JLOI的解题报告但还差第一题没写= =,就这样行啦 T2:[JLOI2015]城池攻占 首先这道题我们先考虑暴力,也就是每个点向父亲跑,我们考虑能否一起做,可以发现在同一个点的骑士可以用一个堆维护一起跳(因为没有改变优先级的操作)然后再用懒标记维护,我们可以直接用一个可合并堆来维护就可以啦 当然这道题用线段树,倍增都是可行的,就是空间比较拙计罢了,需要用一些奇奇怪怪的方法来干 CODE: 1 #include<cstdio> 2 #include<iostream&

JLOI2015 DAY2 简要题解

「JLOI2015」骗我呢 题意 问有多少个 \(n \times m\) 的矩阵 \(\{x_{i, j}\}\) 满足 对于 \(\forall i \in [1, n], j \in [1, m]\) 有 \(x_{i, j} \in[0, m]\) : 对于 \(\forall i \in [1, n], j \in [1, m)\) 有 \(x_{i, j} < x_{i, j + 1}\) : 对于 \(\forall i \in (1, n], j \in [1, m)\) 有 \

BZOJ 4002~4007 JLOI2015 代码

题解戳这里 4002 有意义的字符串: #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define P 7528443412579576937ull using namespace std; typedef unsigned long long ull; ull b,d,n; ull Times(ull

棉花种植业和纺织业彻底颠覆了世界格局:5星|《棉花帝国:一部资本主义全球史》

“ 然而,与这些商品不同,棉花有两个劳动力密集的生产阶段,一个位于农田,另一个位于工厂.糖和烟草没有在欧洲社会形成大规模的工业无产阶级,棉花做到了;烟草没有导致庞大的新型制造业企业的崛起,棉花做到了;靛蓝的种植和制作过程没有为欧洲制造商创造巨大的新市场,棉花做到了;美洲的水稻耕作没有引起奴隶制和雇佣制的爆炸性增长,棉花做到了.” 棉花帝国 作者: [美]斯文·贝克特 出版社: 后浪丨民主与建设出版社 出品方: 后浪 副标题: 一部资本主义全球史 原作名: Empire of Cotton: A

分布式服务--spring mvc +mybatis + Dubbo+Zookeeper+Proxy+Restful

云服务 子系统:后台管理系统.Restfu服务系统.Dubbo服务/管控/监控中心 Zookeeper注册中心.报表分析系统.日志记录系统.定时调度系统 搜索引擎系统.分布式文件系统.消息系统.SSO单点登录系统 SOA管控平台.UI组件系统.OA办公系统.CMS新闻发布系统 支付系统.数据库配置系统.工作流系统.云服务平台 想了解更多详细请点击源码地址获取:mingli 有兴趣的朋友们可以前往球球哦~一起分享学习技术:2042849237

jeesz分布式企业框架 javaWeb分布式架构 springmvc+mybatis+shiro dubbo zookeeper redis kafka app服务

平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis分布式缓存技术.FastDFS分布式文件系统.ActiveMQ异步消息中间件.Nginx负载均衡等分布式技术 使用Maven做项目管理,项目模块化,提高项目的易开发性.扩展性 以spring Framework为核心容器,Spring MVC为模型视图控制器,MyBatis为数据访问层, Apach