传送门

f[i][j][k][l]f[i][j][k][l]f[i][j][k][l]表示用iii张111,jjj张222,kkk张333,lll张444能凑出的最大贡献。

然后从f[i−1][j][k][l],f[i][j−1][k][l],f[i][j][k−1][l],f[i][j][k][l−1]f[i-1][j][k][l],f[i][j-1][k][l],f[i][j][k-1][l],f[i][j][k][l-1]f[i−1][j][k][l],f[i][j−1][k][l],f[i][j][k−1][l],f[i][j][k][l−1]转移过来就行了。

代码:

#include<bits/stdc++.h>
using namespace std;
int f[41][41][41][41],n,m,cnt[5],a[351];
inline int read(){
	int ans=0;
	char ch=getchar();
	while(!isdigit(ch))ch=getchar();
	while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
	return ans;
}
int main(){
	n=read(),m=read();
	for(int i=1;i<=n;++i)a[i]=read();
	for(int i=1;i<=m;++i)++cnt[read()];
	f[0][0][0][0]=a[1];
	for(int i=0;i<=cnt[1];++i)
	for(int j=0;j<=cnt[2];++j)
	for(int k=0;k<=cnt[3];++k)
	for(int l=0;l<=cnt[4];++l){
		int pos=1+i+j*2+k*3+l*4;
		if(i)f[i][j][k][l]=max(f[i][j][k][l],f[i-1][j][k][l]+a[pos]);
		if(j)f[i][j][k][l]=max(f[i][j][k][l],f[i][j-1][k][l]+a[pos]);
		if(k)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k-1][l]+a[pos]);
		if(l)f[i][j][k][l]=max(f[i][j][k][l],f[i][j][k][l-1]+a[pos]);
	}
	cout<<f[cnt[1]][cnt[2]][cnt[3]][cnt[4]];
	return 0;
}

2018.10.20 loj#2593. 「NOIP2010」乌龟棋(多维dp)的更多相关文章

  1. 2018.10.27 loj#2292. 「THUSC 2016」成绩单(区间dp)

    传送门 g[i][j][k][l]g[i][j][k][l]g[i][j][k][l]表示将区间l,rl,rl,r变成最小值等于kkk,最大值等于lll时的花费的最优值. f[i][j]f[i][j] ...

  2. 2018.10.27 loj#6035. 「雅礼集训 2017 Day4」洗衣服(贪心+堆)

    传送门 显然的贪心题啊...考试没调出来10pts滚了妙的一啊 直接分别用堆贪心出洗完第iii件衣服需要的最少时间和晾完第iii件衣服需要的最少时间. 我们设第一个算出来的数组是aaa,第二个是bbb ...

  3. 2018.10.15 loj#6010. 「网络流 24 题」数字梯形(费用流)

    传送门 费用流经典题. 按照题目要求建边. 为了方便我将所有格子拆点,三种情况下容量分别为111,infinfinf,infinfinf,费用都为validi,jval_{id_{i,j}}valid ...

  4. 2018.10.15 loj#6013. 「网络流 24 题」负载平衡(费用流)

    传送门 费用流sb题. 直接从sss向每个点连边,容量为现有物品量. 然后从ttt向每个点连边,容量为最后库存量. 由于两个点之间可以互相任意运送物品,因此相邻的直接连infinfinf的边就行了. ...

  5. 2018.10.14 loj#6012. 「网络流 24 题」分配问题(费用流)

    传送门 费用流水题. 依然是照着题意模拟建边就行了. 为了练板子又重新写了一遍费用流. 代码: #include<bits/stdc++.h> #define N 305 #define ...

  6. 2018.10.14 loj#6011. 「网络流 24 题」运输问题(费用流)

    传送门 费用流入门题. 直接按照题意模拟. 把货物的数量当做容量建边. 然后跑一次最小费用流和最大费用流就行了. 代码: #include<bits/stdc++.h> #define N ...

  7. 2018.10.14 loj#6003. 「网络流 24 题」魔术球(最大流)

    传送门 网络流好题. 这道题可以动态建图. 不难想到把每个球iii都拆点成i1i_1i1​和i2i_2i2​,每次连边(s,i1),(i2,t)(s,i_1),(i_2,t)(s,i1​),(i2​, ...

  8. 2018.11.01 loj#2319. 「NOIP2017」列队(线段树)

    传送门 唉突然回忆起去年去noipnoipnoip提高组试水然后省二滚粗的悲惨经历... 往事不堪回首. 所以说考场上真的有debuffdebuffdebuff啊!!!虽然当时我也不会权值线段树 这道 ...

  9. LOJ 3089 「BJOI2019」奥术神杖——AC自动机DP+0/1分数规划

    题目:https://loj.ac/problem/3089 没想到把根号之类的求对数变成算数平均值.写了个只能得15分的暴力. #include<cstdio> #include< ...

随机推荐

  1. leetcode83

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...

  2. eclipse 的project explorer问题,这个怎样把localFileSystem去掉

    转自:https://zhidao.baidu.com/question/550279043.html

  3. shrio Subject的认证

    注意:shiro的认证只是获取用户名和密码,具体的匹配由shiro来完成

  4. shiro 框架

    惊天给大家总结一点shiro框架的小知识 Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理.使用Shiro的易于理解的API,您可以快速.轻松地获得任何应 ...

  5. IIS 更新EXE文件

    IIS 更新EXE文件 MIME,add,文件扩展名带不带.都可以,会自动加上.的 文件扩展名:.exe MIME类型:application/octet-stream .ini文件

  6. Declaration terminated incorrectly 讨厌 这样就不可以了

    #include "vcl.fctreeview.hpp"#include "RM_Class.hpp"#include "RM_Common.hpp ...

  7. Spring MVC 基本储备

    @RequestMapping value, method, params 必须存在参数, headers: 请求头部必须是啥样 @PathVariable 绑定URL参数 HiddenHttpMet ...

  8. UI5-文档-4.38-Accessibility

    作为本教程的最后一步,我们将改进应用程序的可访问性. 为此,我们将添加ARIA属性.屏幕阅读器使用ARIA属性识别应用程序结构并正确解释UI元素.通过这种方式,我们可以让我们的应用程序对那些使用电脑有 ...

  9. Delphi操作Excel(Use Oel)

    Use ComObj: procedure TorderMore1.BitBtn2Click(Sender: TObject);var  xlsFile:WideString;  var ExcelA ...

  10. Java web struct入门基础知识

    1.Struts2的前身是Opensymphony的Webwork2,实际上Strut和Webwork2合并后形成Struts2.   2.一个HelloWord示例 1)创建Web应用,所需要的Ja ...