题目背景

《爱与愁的故事第四弹·plant》第一章。

题目描述

爱与愁大神后院里种了n棵樱花树,每棵都有美学值Ci。爱与愁大神在每天上学前都会来赏花。爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍过,一种樱花树最多看Ai遍,一种樱花树可以看无数遍。但是看每棵樱花树都有一定的时间Ti。爱与愁大神离去上学的时间只剩下一小会儿了。求解看哪几棵樱花树能使美学值最高且爱与愁大神能准时(或提早)去上学。

输入输出格式

输入格式:

共n+1行:

第1行:三个数:现在时间Ts(几点:几分),去上学的时间Te(几点:几分),爱与愁大神院子里有几棵樱花树n。

第2行~第n+1行:每行三个数:看完第i棵树的耗费时间Ti,第i棵树的美学值Ci,看第i棵树的次数Pi(Pi=0表示无数次,Pi是其他数字表示最多可看的次数Pi)。

输出格式:

只有一个整数,表示最大美学值。

输入输出样例

输入样例#1: 复制

6:50 7:00 3
2 1 0
3 3 1
4 5 4
输出样例#1: 复制

11

说明

100%数据:Te-Ts ≤ 1000,n ≤ 10000

样例解释:赏第一棵樱花树一次,赏第三棵樱花树2次

//一个01背包、多重背包和完全背包的混合。
//在进行到第i棵树的时候,对它进行判断,判断属于哪一种背包
//然后根据它所属的类型做背包
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
using namespace std;
char s;
int a,b,c,d,n,tim;
struct tree
{
int t,c,p;
}t[];
int dp[];
int main()
{
scanf("%d%c%d%c%d%c%d%c",&a,&s,&b,&s,&c,&s,&d,&s);
tim=(c-a)*-b+d; //计算时间
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&t[i].t,&t[i].c,&t[i].p);
}
for(int i=;i<=n;i++)
{
if(t[i].p==) //完全背包
{
for(int j=t[i].t;j<=tim;j++)
{
//for(int i=)
dp[j]=max(dp[j],dp[j-t[i].t]+t[i].c);
}
}
else if(t[i].p==) //01背包
{
for(int j=tim;j>=t[i].t;j--)
{
dp[j]=max(dp[j],dp[j-t[i].t]+t[i].c);
}
}
else //多重背包
{
for(int j=tim;j;j--)
{
for(int k=;k<=t[i].p&&j-k*t[i].t>=;k++) //从1开始正序枚举,一开始写的倒序,WA了
{
dp[j]=max(dp[j],dp[j-t[i].t*k]+t[i].c*k);
}
}
}
}
//printf("%d\n",tim);
printf("%d",dp[tim]);
return ;
}

P1833 樱花的更多相关文章

  1. 【洛谷】【动态规划/背包】P1833 樱花

    [题目描述:] 爱与愁大神后院里种了n棵樱花树,每棵都有美学值Ci.爱与愁大神在每天上学前都会来赏花.爱与愁大神可是生物学霸,他懂得如何欣赏樱花:一种樱花树看一遍过,一种樱花树最多看Ai遍,一种樱花树 ...

  2. 题解【P1833 樱花】

    题目 有 \(n\) 棵樱花,有三种: 只能看一次 最多看 \(A_i\) 遍 能无限看 看每棵樱花都需要一定时间 \(T_i\),求从 \(T_s\) 开始,到 \(T_e\) 结束(时间)最多能看 ...

  3. 洛谷 P1833 樱花

    题目传送门 解题思路: 就是完全背包和多重背包的混合.处理时间的时候注意一下就行了 AC代码: #include<iostream> #include<cstdio> usin ...

  4. [BZOJ4027][HEOI2015] 兔子与樱花

    Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接 ...

  5. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件

    “玉渊潭公园樱花节”是每年樱花绽放时,都会在玉渊潭公园樱举办樱花节,游客前往玉渊潭公园,可以欣赏到20个品种2000株樱花.2016玉渊潭樱花节时间:3月中旬-4月中旬观赏最佳,2016年3月23日开 ...

  6. 【BZOJ-2721】樱花 线性筛 + 数学

    2721: [Violet 5]樱花 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 499  Solved: 293[Submit][Status][D ...

  7. 【bzoj4027】[HEOI2015]兔子与樱花

    题目描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...

  8. BZOJ4027: [HEOI2015]兔子与樱花 贪心

    觉得是贪心,但是一开始不太肯定...然后就A了 一个点对它的父亲的贡献就是自己的权值加儿子的个数 #include<bits/stdc++.h> using namespace std; ...

  9. 【BZOJ】【4027】【HEOI2015】兔子与樱花

    贪心 树上贪心问题……跟APIO2015练习赛的C很像啊…… 我的思路是:从叶子向上考虑,令a[x]表示x这个节点上樱花数量与儿子个数的和(即对于任意的x,都有$a[x]\leq m$)每次从儿子的a ...

随机推荐

  1. xorm表结构操作实例

    获取数据库信息 package main import ( "fmt" _ "github.com/go-sql-driver/mysql" "git ...

  2. Git和Github的介绍、简单操作、冲突(上)

    目的:   1.git与github简介  2.Git与SVN区别 3.Github 的简单使用 4.下载安装Git-20-64-bit.exe   5.Git常用命令 5.1Git命令使用场景 5. ...

  3. pyrhon 第一个小购物车例子

    product_list=[[],[],[],[]] shopping_list=[] salary = input("请输入你的工资:") if salary.isdigit() ...

  4. 关于微信小程序iOS端时间格式兼容问题

    经过测试发现,当时间格式为 2018-08-08 08:00 ,需要将时间转为其他格式时,Android端转换成功,iOS端报错或是转为NaN 这是因为iOS端对符号‘ - ’不支持,也就是说iOS端 ...

  5. node.js 微信开发3-网页授权

    1.配置公众号的自定义菜单,如 { "button":[ { "type":"view", "name":"公 ...

  6. linux7 上安装mongodb4.2.1操作步骤

    MongoDB是一个通用的.基于文档的分布式数据库,它是为现代应用程序开发人员和云时代而构建的.没有数据库能让你更有效率. 1.下载需要的软件包https://www.mongodb.com/down ...

  7. 【OF框架】搭建标准工作环境

    前言 统一工作环境,统一工具集,是沟通效率的基础.如同语言一样,使用不同语言的人,需要花更多的精力去理解语言,然后才是理解语言的内容,而使用相同语言的人,对话过程直接进入到内容.对于语言不统一增加的效 ...

  8. Sql Server 2017 安装问题记录

    记录了我在虚拟机中安装Sql server 2017遇到的一些问题. 安装环境: Sql server 2017 + Windows Server 2012 R2 提供两个网上的下载链接: https ...

  9. 读入 并查集 gcd/exgcd 高精度 快速幂

    ios_base::sync_with_stdio(); cin.tie(); ], nxt[MAXM << ], Head[MAXN], ed = ; inline void added ...

  10. RollingRegression(滚动回归分析)之Python实现

    # -*- coding: utf-8 -*-"""Created on Sat Aug 18 11:08:38 2018 @author: acadsoc"& ...