[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‘||ch>‘9‘;ch=getchar());
 9     for(;ch>=‘0‘&&ch<=‘9‘;sum=sum*10+(ch^48),ch=getchar());
10     return sum;
11 }
12 typedef long long L;
13 int n,m,tot;
14 L w[1050][15],f[1050][15];
15 L dp[1050][1050];
16 inline void dfs(int rt,int dep,int st){
17     memset(dp[rt],0,sizeof(dp[rt]));
18     if(dep==n-1){
19         for(int i=0;i<dep;++i){
20             if(st&(1<<i))
21                 dp[rt][1]+=w[rt][i];
22             else
23                 dp[rt][0]+=f[rt][i];
24         }
25         return;
26     }
27     int size(1<<(n-dep-1));
28     dfs(rt<<1,dep+1,st);
29     dfs(rt<<1|1,dep+1,st);
30     for(int i=0;i<=(size>>1);++i){
31         if(i>m)
32             break;
33         for(int j=0;j<=(size>>1);++j){
34             if(i+j>m)
35                 break;
36             dp[rt][i+j]=max(dp[rt][i+j],dp[rt<<1][i]+dp[rt<<1|1][j]);
37         }
38     }
39     dfs(rt<<1,dep+1,st|(1<<dep));
40     dfs(rt<<1|1,dep+1,st|(1<<dep));
41     for(int i=0;i<=(size>>1);++i){
42         if(i>m)
43             break;
44         for(int j=0;j<=(size>>1);++j){
45             if(i+j>m)
46                 break;
47             dp[rt][i+j]=max(dp[rt][i+j],dp[rt<<1][i]+dp[rt<<1|1][j]);
48         }
49     }
50 }
51 int main(){
52     n=read(),m=read(),tot=(1<<n)-1;
53     for(int i=1;i<=(1<<(n-1));++i)
54         for(int j=n-2;j>=0;--j)
55             w[(1<<(n-1))+i-1][j]=read();
56     for(int i=1;i<=(1<<(n-1));++i)
57         for(int j=n-2;j>=0;--j)
58             f[(1<<(n-1))+i-1][j]=read();
59     dfs(1,0,0);
60     L ans(0);
61     for(int i=0;i<=m;++i)
62         ans=max(ans,dp[1][i]);
63     printf("%lld",ans);
64 }

时间: 2024-10-10 05:41:04

[JLOI2015]战争调度的相关文章

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 **************************************************

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

链接: #include <stdio.h> int main() { puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/45146301"); } 题解: 暴力是什么样呢? O(21023) 是也. 然后能过的算法是什么样呢? 首先对于一棵子树,如果根节点到整棵树的根节点这一部分节点的[挂机/送人头]的状态已经确定了,那么左子树的最优答案和右子树的最优答

[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

神州租车:专车战争搅局者

专车服务本质是看线下服务,App只是购物环境平台,重要的是在里面买到性价比高的产品. 文/张书乐 刊载于<销售与市场>杂志评论版2015年04期 国内租车市场的大佬神州租车联手第三方独立公司优车科技,于2015年1月28日在国内60个主要城市正式推出"神州专车"服务,正式杀入专车市场.此刻恰逢滴滴.快的.易到用车等专车服务相继被各地交通运输管理部门亮"红灯"之际. 神州租车登台的方式也很简单直接--烧钱.其计划在专车业务方面投入25亿元,补贴5000万新

python的sched模块--延时调度

我们经常需要定时的执行某个任务,在Linux下我们有强大的crontab,但是在Python这个粒度(定时执行函数),如何处理呢?除了第三方的模块外,标准库为我们提供了sched模块和Timer类. 先说sched模块,准确的说,它是一个调度(延时处理机制),每次想要定时执行某任务都必须写入一个调度.使用步骤如下:(1)生成调度器:s = sched.scheduler(time.time,time.sleep)第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞.可以说sc

Linux进程管理与调度-之-目录导航【转】

转自:http://blog.csdn.net/gatieme/article/details/51456569 版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme 目录(?)[-] 项目链接 进程的描述 进程的创建 进程的加载与运行 进程的退出 进程的调度 调度普通进程-完全公平调度器CFS 日期 内核版本 架构 作者 GitHub CSDN 2016-07-21 Linux-4.6 X86 & arm gatieme