1.又是一道因为写了异常剪枝而调了好久的题,以后再也不写异常剪枝了,异常情况压根不该出现,所以针对出现的异常情况进行补救的异常剪枝是一种很容易出错的行为,做为两手准备也就罢了,但第一次写成的代码必须能在没有异常剪枝的情况下算出正确结果才行!

2.还提出了一个专门针对记搜的编码规范:编写记忆化搜索的时候不要使用除了DP以外的全局变量,要用外界常量就用一个一直传着的常量引用如const int &

(注意,指向常量的指针写作int * const p,而常量引用写作 const int & p,但两者是同一个东西,都是不允许修改指向对象的,注意,指向常量的指针和常量引用都并不是只能指向常量,而是不能修改指向的量,换句话说可以指向变量,只是用指针和引用来表示指向的变量的时候那个变量会表现成一个常量的样子,但并不是新创建了一个与之相等的常量来被指)

3.同时,十年OI一场空,不开ll见祖宗啊QAQ

而且很多时候把int改成ll会忘了改返回值类型等较小的地方,导致错误,所以不如#define int long long,signed main,真香

4.然后还是WA了,因为忽略了还有重量为0的商品,即不用嗑药也能打过的菜鸡,所以边界应该是“if(remain<0||cdP==0)return DP[remain][cdP]=0;//边界剪枝”而不是“if(remain==0||cdP==0)return DP[remain][cdP]=0;//边界剪枝”

Code

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <map>
#include <vector>
#include <queue>
#include <cmath>
using namespace std;
#define int long long
int DP[1005][1005];
//remian is the remain count of drug ,and cdP is the considered_person_number
//the return value is the answer of I have these drugs and these persons
//标准编码规范:编写记忆化搜索的时候不要使用除了DP以外的全局变量,要用外界常量就用一个一直传着的常量引用如const int &
int dfs(int remain,int cdP, const int * const w,const int * const u)
{
if(DP[remain][cdP]!=-1)return DP[remain][cdP];//记忆化剪枝
if(remain<0||cdP==0)return DP[remain][cdP]=0;//边界剪枝
int DFS=0;//总种数就加、最优解就取MAX(或MIN)
if(remain-u[cdP]>=0)DFS=max(DFS,dfs(remain-u[cdP],cdP-1,w,u)+w[cdP]);
DFS=max(DFS,dfs(remain,cdP-1,w,u));
return DP[remain][cdP]=DFS;
} signed main()
{
int x,n,ans=0,l[1005],w[1005],u[1005];
cin>>n>>x;
memset(DP,-1,sizeof(DP));
for(int i=1;i<=n;i++)
cin>>l[i]>>w[i]>>u[i];
for(int i=1;i<=n;i++)w[i]-=l[i],ans+=l[i];
cout<<5*(ans+dfs(x,n,w,u))<<endl; return 0;
}

P1802-DP【橙】的更多相关文章

  1. 清橙A1212:剪枝

    题面 清橙 Sol 一种新的树上\(DP\)姿势 从左往右按链\(DP\) 做法: 维护两个栈\(S1\),\(S2\) \(S1\)存当前的链 \(S2\)存分叉点以下要改的链 \(Dfs\),弄一 ...

  2. DP题目推荐合集(洛谷/UVa)

    今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2. ...

  3. DP及其优化

    常见DP模型及其构造 序列DP ARC074 RGB Sequence 题意 给你一个长度为 \(n\) 的序列和 \(m\) 组约束条件,每组条件形如 \(l_i,r_i,x_i\),表示序列上的 ...

  4. 从《彩色圆环》一题探讨一类环上dp的解法

    清橙A1202 bzoj2201 bsoj4074 试题来源 2010中国国家集训队命题答辩 问题描述 小A喜欢收集宝物.一天他得到了一个圆环,圆环上有N颗彩色宝石,闪闪发光.小A很爱惜这个圆环,天天 ...

  5. 模拟赛 提米树 题解 (DP+思维)

    题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. ...

  6. P1802 5倍经验日

    P1802 5倍经验日 题目背景 现在乐斗有活动了!每打一个人可以获得5倍经验!absi2011却无奈的看着那一些比他等级高的好友,想着能否把他们干掉.干掉能拿不少经验的. 题目描述 现在absi20 ...

  7. dp入门题解

    学dp学到自闭(真的判断不出是个dp问题哇) 来看一下最近学的dp简单的题库. 1.01背包问题(P1048) 这个的特点是每种东西只能拿一次. https://www.luogu.com.cn/pr ...

  8. 【DP】斜率优化初步

    向y总学习了斜率优化,写下这篇blog加深一下理解. 模板题:https://www.acwing.com/problem/content/303/ 分析 因为本篇的重点在于斜率优化,故在此给出状态转 ...

  9. Codeforces 891D - Sloth(换根 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 换根 dp 好题. 为啥没人做/yiw 首先 \(n\) 为奇数时答案显然为 \(0\),证明显然.接下来我们着重探讨 \(n\) 是偶数 ...

  10. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

随机推荐

  1. 学习tinyriscv(1):安装tinyriscv的工具链

    因为毕设是CPU的低功耗设计,所以开始看cpu,打算还是先从这个tinyriscv学起,昨天把环境下好了,第一步是用git去clone代码,这个首先要下载git,然后在目标文件夹鼠标右键,选择&quo ...

  2. RDBMS与Hbase对比 HDFS与HBase对比 Hive与HBase对比

    RDBMS: HBASE: HDFS与HBase对比: Hive与HBase对比: Hive与HBase总结

  3. 中企网安信息科技:数据防泄密DLP管理系统概述

    由华企网安总公司北京中企网安信息科技有限责任公司开发的<数据防泄密DLP管理系统>,获得国家版权局颁发的计算机软件著作权登记证书. 数据防泄密DLP管理系统是用于保护.监控和管理敏感数据的 ...

  4. JWT 简介与 C# 示例

    〇.什么是 JWT ? JWT,即 JSON Web Token,是一种基于 JSON 的开放标准(RFC 7519),主要用于在网络应用环境间安全地传递声明.这种声明被进行了数字签名,可以验证和信任 ...

  5. Android移动、缩放和旋转手势实现

    Android的部分图片编辑应用中需要对图片进行移动.缩放和旋转,这些变化都依赖于触摸手势实现,而本文主要阐述移动.缩放和旋转手势的简单实现. 一.移动 首先需要从触摸事件(MotionEvent)中 ...

  6. 基于WebRTC的局域网文件传输

    基于WebRTC的局域网文件传输 WebRTC(Web Real-Time Communications)是一项实时通讯技术,允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点P2P ...

  7. zabbix 默认消息

    故障事件: {TRIGGER.NAME}监控状态: {TRIGGER.STATUS}报警严重性: {TRIGGER.SEVERITY}触发结果: {TRIGGER.URL}告警时间:{EVENT.DA ...

  8. kubernetes之部署nginx+vue前端(一)

    kubernetes之部署nginx+vue前端(一) k8s系列项目的部署方式之一使用了kubernetes部署nginx+vue前端. 一.打包前端 将dist与Dockerfile放到同一目录下 ...

  9. 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 09.第二个游戏规则:玩家重生

    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本文对应课程15章,60 - Refining Player Respawns. 在本篇文章中,将会为游戏新增加 ...

  10. spring-mvc 系列:HttpMessageConverter(@RequestBody、RequestEntity、@ResponseBody、@RestController、ResponseEntity、文件上传下载)

    目录 一.@RequestBody 二.RequestEntity 三.@ResponseBody 四.SpringMVC处理json 五.@RestController 六.ResponseEnti ...