洛谷 P1964 【mc生存】卖东西
题目背景
服务器好好玩
题目描述
lcy0x1去服务器的系统商店卖东西。
一个人的背包有21格。
一开始他的背包里有m件不同的物品(不能卖)。
他要卖n种物品,每种物品有ai件,价值bi,一格可以放ci个,
名字sti(0<sti的长度<100)
相同的物品可以放同一格(只要没放满)。
问他跑一次最多能卖多少钱。
输入输出格式
输入格式:
第一行m,n(0<=m<=21,0<=n<=100);
下面n行 ai,bi,ci,sti(0<=ai<=1344,0<=bi<=10000,0<ci<=64);
输出格式:
最多卖的钱s(0<=s<=1000000);
输入输出样例
说明
多重背包
搜索0分!!!
强大的数据
思路:预处理+01背包。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<map>//用STL的map的头文件
using namespace std;
int dp[],w[];
map<string,int>a,b,c;
map<string,bool>d;
string s[];
int main(){
int n,m,l,i,j,k,maxi=;
cin>>m>>n;
m=-m;
for(i=;i<=n;i++){
cin>>l>>j>>k;
cin>>s[i];
a[s[i]]+=l;
b[s[i]]=j;
c[s[i]]=k;
}
k=;
for(i=;i<=n;i++){
if(d[s[i]]==){
d[s[i]]=;
while(a[s[i]]>=c[s[i]]){
w[++k]=c[s[i]]*b[s[i]];
a[s[i]]-=c[s[i]];
}
if(a[s[i]]) w[++k]=a[s[i]]*b[s[i]];
}
}
for(i=;i<=k;i++){
for(j=m;j>=;j--){
dp[j]=max(dp[j],dp[j-]+w[i]);
maxi=max(maxi,dp[j]);
}
}
cout<<maxi<<endl;
}
洛谷 P1964 【mc生存】卖东西的更多相关文章
- 洛谷 P1964 【mc生存】卖东西(多重背包)
题目传送门 解题思路: 题目里有,多重背包. AC代码: #include<iostream> #include<cstdio> #include<map> usi ...
- 【洛谷p5015】标题统计
(写上瘾了再来一篇吧) 标题统计[传送门] 洛谷算法标签 字符串这种东西,我看到是崩溃的.因为我们只学到了二维数组[这个梗自行get],总之我们当时还没有学.然后显然就是各种翻书,各种百度.大致了解了 ...
- POJ 1741.Tree and 洛谷 P4178 Tree-树分治(点分治,容斥版) +二分 模板题-区间点对最短距离<=K的点对数量
POJ 1741. Tree Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 34141 Accepted: 11420 ...
- P1964 【mc生存】卖东西
P1964 [mc生存]卖东西 题解 很简单, 暴力 注意一个小点就好 代码 #include<iostream> #include<cstdio> #include<c ...
- 洛谷 P1789 【Mc生存】插火把 题解
P1789 [Mc生存]插火把 题目背景 初一党应该都知道...... 题目描述 话说有一天 linyorson 在"我的世界"开了一个 \(n\times n(n\le 100) ...
- 洛谷 P2317 [HNOI2005]星际贸易 解题报告
P2317 [HNOI2005]星际贸易 题目描述 输入输出格式 输入格式: 输出格式: 如果可以找到这样的方案,那么输出文件output.txt中包含两个整数X和Y.X表示贸易额,Y表示净利润并且两 ...
- 题解-洛谷P6788 「EZEC-3」四月樱花
题面 洛谷P6788 「EZEC-3」四月樱花 给定 \(n,p\),求: \[ans=\left(\prod_{x=1}^n\prod_{y|x}\frac{y^{d(y)}}{\prod_{z|y ...
- 洛谷 P1471 方差
洛谷 P1471 方差 题目背景 滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数.他想算算这个数列的 ...
- 洛谷P1783 海滩防御 分析+题解代码
洛谷P1783 海滩防御 分析+题解代码 题目描述: WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和 ...
随机推荐
- mysql-组合查询
一.组合查询 mysql允许执行多个查询(多条select语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(union)或复合查询(compound query). 有两种情况需要使用组 ...
- 搭建基于qemu + eclipse的kernel调试环境(by quqi99)
作者:张华 发表于:2016-02-06版权声明:能够随意转载.转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 使用q ...
- [javase学习笔记]-6.7 封装
这一节我们学习面向对象中的第一个特性,封装(encapsulation) 封装:是指隐藏对象的发生和实现细节,仅对外提供公共訪问方式. 那么什么是隐藏对象的实现细节? 我们来举例学习. 比方我们来定义 ...
- 使用isolation forest进行dns网络流量异常检测
代码如下,测试发现,是否对输入数据进行归一化/标准化对于结果没有影响: import numpy as np from sklearn.ensemble import IsolationForest ...
- rest_framework 序列化篇
感谢alex和武沛齐老师 rest_framework中的序列化表示 from rest_framework import serializersclass RoleSerializer(serial ...
- AngularJs轻松入门(一)创建第一个应用
AngularJs是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web ...
- JDK5新特性:可变参数方法
JDK1.5增加可变参方法,其定义格式为: 访问修饰符 返回值类型 方法标识符(参数类型 参数标识符1,参数类型 参数标识符2,参数类型...参数标识符){} 如可能要定义一个求和功能的方法,但求和的 ...
- Android——PullToRefresh自动刷新
需求:强制刷新 方法一: PullToRefreshListView本身提供了一个setRefreshing()接口,调用该接口会自动触发下拉刷新的操作(前提是支持下拉刷新).按照一般的操作我们直接在 ...
- Java Web Application——servlet
概述 是一个部署于web服务器中的实现了servlet接口的Java类,用于响应web请求 Web容器(也称为servlet容器)本质上是与servlet交互的Web服务器的组件.Web容器负责管理s ...
- 紫书 例题 10-22 UVa 1640(数位统计)
这道题的题解有几个亮点 一个是每次只统计一个数字来简化思维 一个是统计当前位数的时候分三个部分来更新答案 具体看代码,有注释 #include<cstdio> #include<cs ...