[JLOI2015]战争调度

Posted Mafia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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 }
View Code

 

以上是关于[JLOI2015]战争调度的主要内容,如果未能解决你的问题,请参考以下文章

[JLOI 2015]战争调度

BZOJ 4007[JLOI2015]战争调度 DP+搜索+状压

bzoj4006 [JLOI2015]管道连接

[洛谷P3261] [JLOI2015]城池攻占(左偏树)

bzoj4004 [JLOI2015]装备购买——线性基+贪心

jloi2015