[luoguP2760] 科技庄园(背包DP)

传送门

 

每次拿完还得回去。。。

 

数据中有两个需要注意的地方:

  1. 存在桃树上有桃子但是摘 0 次的情况
  2. 题目中要求体力不能为0,因此就算到达了重点体力也不能为0,所以实际上允许使用的体力为 a - 1

把每个桃树想象成物品,体力和时间的最小值想象成空间

由于摘完一次就要回到起点,所以每颗桃树的体力为 2 * (x + y), x y 分别为此桃树对应的横纵坐标

#include <cstdio>
#include <iostream>
#define N 1001
#define M 1000001
#define min(x, y) ((x) < (y) ? (x) : (y))
#define max(x, y) ((x) > (y) ? (x) : (y))int n, m, t, d, c, cnt;
int a[N][N], b[N][N], num[M], val[M], cost[M], f[M];inline int read()
{int x = 0, f = 1;char ch = getchar();for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1;for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0';return x * f;
}int main()
{int i, j, k;n = read();m = read();t = read();d = read();c = min(t, d - 1);for(i = 1; i <= n; i++)for(j = 1; j <= m; j++){a[i][j] = read();if(a[i][j]){cnt++;val[cnt] = a[i][j];cost[cnt] = 2 * (i + j);}}cnt = 0;for(i = 1; i <= n; i++)for(j = 1; j <= m; j++){b[i][j] = read();if(a[i][j]){++cnt;num[cnt] = b[i][j];}}for(i = 1; i <= cnt; i++)for(j = c; j >= 1; j--)for(k = 1; k <= num[i]; k++)if(j >= cost[i] * k)f[j] = max(f[j], f[j - k * cost[i]] + k * val[i]);printf("%d\n", f[c]);return 0;
}

  

转载于:https://www.cnblogs.com/zhenghaotian/p/7056291.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468371.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

#define的高级用法

来源&#xff1a;嵌入式大杂烩地址&#xff1a;https://blog.csdn.net/xiaoxu2050/article/details/82893476一、宏的定义与撤销需要注意的是&#xff1a;&#xff08;1&#xff09;宏定义应注意添加括号&#xff0c;这样语义会比较清晰。&#xff08;2&#xff09;使用#undef可…

python读取csv文件_python3.0读取csv文件

创建CSV文件&#xff0c;可以打开excel文件&#xff0c;创建表格以后&#xff0c;另存为csv文件(以逗号分隔的文件)以文本格式打开&#xff0c;发现是用逗号分隔的用python读取csv文件&#xff0c;首先要引入一个库:csvimport csvdef getCsvFile(strpath):with open(strpath, &…

java 导出excel 例子_java导出Excel例子

//在service层写的&#xff0c;在action直接调用此方法就行了//导出Excelpublic boolean exportExcel(HttpServletResponse response,List list){try{OutputStream os response.getOutputStream();// 取得输出流response.reset();// 清空输出流response.setHeader("Conte…

直击中关村创业大街,新街头霸王来了

中国的硅谷在北京中关村。如今&#xff0c;中关村中正在酝酿硅谷中的硅谷&#xff0c;这里将不断诞生最前卫最现代的互联网和移动互联网创业公司&#xff0c;他们当中极可能孵化出中国互联网企业未来10年的新的BAT。这个硅谷中的硅谷。就是中关村创业大街。这条街在过去15年是北…

我们应该这样理解鸿蒙

之前写过文章谈到的鸿蒙&#xff0c;很多人觉得我说的有点过分&#xff0c;但是我觉得现在出来的情况还是符合预期的&#xff0c;鸿蒙正在完成他的任务。讲个故事&#xff0c;手机还没有普及的时候&#xff0c;相机的地位非常高&#xff0c;相机里面有一个东西叫做胶卷&#xf…

人工智能在语音和数字图像处理领域有哪些具体化应用_智能呼叫中心系统有哪些优势...

近年来&#xff0c;随着科技的发展特别是人工智能技术、云计算、大数据的到来&#xff0c;新技术逐渐渗入人们日常生活中的各行各业里面&#xff0c;以机器人来代替人工处理繁重的任务变得普遍。在人工智能时代下&#xff0c;新一代智能呼叫中心系统应运而生&#xff0c;呼叫中…

java cellvalue_Java Cell.getErrorCellValue方法代码示例

import org.apache.poi.ss.usermodel.Cell; //导入方法依赖的package包/类/*** 获取单元格值** param row 获取的行* param column 获取单元格列号* return 单元格值*/public Object getCellValue(Row row, int column) {Object val "";try {Cell cell row.getCell…

centos下mysql多实例安装3306、3307实例(2014-10-15)

背景说明 mysql的安装方法有多种&#xff0c;如二进制安装、源代码编译安装、yum安装等。yum安装仅仅能安装mysql 5.1 版本号&#xff1b;源代码安装编译的过程比較长。若没有对源代码进行改动且要求使用mysql较高版本号&#xff0c;建议使用二进制安装。本文以二进制安装mysql…

如何自己实现一个栈

文章转自编程珠玑&#xff0c;作者&#xff1a;守望先生前言栈是一种应用广泛的数据结构&#xff0c;例如函数的调用就需要使用栈&#xff0c;其实我们在介绍《栈的操作栈的常见操作有出栈(POP)&#xff0c;从栈中弹出一个元素&#xff1b;入栈(PUSH)&#xff0c;将一个元素压入…

python编写ATM类_Python中编写类的各种技巧和方法

有关 Python 内编写类的各种技巧和方法(构建和初始化、重载操作符、类描述、属性访问控制、自定义序列、反射机制、可调用对象、上下文管理、构建描述符对象、Pickling)。你可以把它当作一个教程&#xff0c;进阶&#xff0c;或者使用参考&#xff1b;我希望它能够成为一份针对…

java的沙盒安全模式_Java沙箱机制

自从 Java 技术出现以来, 有关 Java 平台的安全性及由 Java 技术发展所引发的新的安全性问题,引起了越来越多的关注.目前,Java 已经大量应用在各个领域,研究 Java 的安全 性对于更好地使用 Java 具有深远的意义.本文主要从两个方面阐述了 Java 的安全性:一是 Java 平台(主要通过…

PHP斐波那契数列

今天面试遇到一个斐波那契数列的求法 1 1 2 3 5 8 13 ... 要求写出算法 //数组法 function test($num){$arr[];for($i0;$i<$num;$i){if($i0 || $i1){$arr[$i]1;}else{$arr[$i]$arr[$i-1]$arr[$i-2];}}return $arr[$num]; } print_r(test(10));//递归法 function fib_recursi…

再说嵌入式入门

我之前写过几篇嵌入式入门的文章 不过我的读者还是觉得不够过瘾&#xff0c;我觉得还是要着重说一下嵌入式软件应该重点学习什么&#xff0c;guoqing收假最后一天写文。精通C语言 精通C语言 精通C语言C语言对于嵌入式软件来说就是他的命脉&#xff0c;不懂C语言的人根本就不能说…

java ios 开发工具_iOS应用开发的五个Java开源工具

随着第三方工具的不断壮大&#xff0c;开发人员逐渐摆脱政策束缚&#xff0c;对于iOS系统的封闭性为其他语言(如Java)开发者诟病得到解脱&#xff0c;开始使用自己熟悉的语言来编写iOS本地应用&#xff0c;或将其他平台上的应用移植到iOS上。本文为你介绍5款开源的开发工具&…

hive 时间转字符串_大数据面试杀招——Hive高频考点,还不会的进来挨打

一、什么是Hive&#xff0c;为什么要用Hive&#xff0c;你是如何理解Hive?面试官往往一上来就一个“灵魂三连问”&#xff0c;很多没有提前准备好的小伙伴基本回答得都磕磕绊绊&#xff0c;效果不是很好。下面贴出菌哥的回答&#xff1a;Hive是基于Hadoop的一个数据仓库工具&a…

用数组实现一个栈

#include<stdio.h> #define STACK_SIZE 64 /*栈大小*/ #define TOP_OF_STACK -1 /*栈顶位置*/ typedef int ElementType; /*栈元素类型*/ #define SUCCESS 0 #define FAILURE -1 /*定义栈结构*/ typedef struct StackInfo {int topOfStack; /*记录栈顶位置*/ElementType …

java基础----Java中枚举的使用(一)

这里介绍一下java中关于枚举的使用。 java中枚举的使用 一、枚举中可以定义方法 参照于TimeUnit的使用&#xff0c;TimeUnit.MILLISECONDS.sleep(1000); LoveUtils的类&#xff1a;package com.linux.huhx.enumTest;/*** Created by huhx on 2017-05-24.*/ public enum LoveUti…

java jpa jar_JPA 开发所需的Jar包 (基于Hibernate)

JPA 开发所需的Jar包 (基于Hibernate)(一)下载Sun 的JPA规范(即&#xff1a;Jar包)登陆JavaEE 的 Technologies 页面:http://java.sun.com/javaee/technologies/index.jsp选择 Java Persistence 2.0选择 Final Release 中的 Download Page 后进入下面的界面&#xff1a;下载如下…

用链表实现一个栈

#include<stdio.h> #include<stdlib.h> typedef int ElementType; /*栈元素类型*/ #define SUCCESS 0 #define FAILURE -1 /*定义栈结构*/ typedef struct StackInfo {ElementType value; /*栈存储的数据*/struct StackInfo *next; /*指向栈的下一个元素*/ }StackI…

qlsql

1.导入sql文件&#xff1a;qlsql中打开命令窗口&#xff0c;输入 文件路径 &#xff0c;直接点击执行就能导入&#xff1b; 2.创建角色分配权限依次&#xff1a;connect&#xff0c;resource&#xff0c;dba&#xff0c;dba是管理层&#xff1b; 3.导出命令&#xff1a;exp 用…