Checkout Assistant CodeForces - 19B
题意:
给你n个物品,每个物品有一个价格ci和一个支付时间ti,在这个ti时间内,你可以免费拿ti个物品。问你想要带走这n个物品最小需要多少钱
题解:
因为买了第i件商品可以免费拿出来ti个,可以相当于一共拿出来ti+1个
那么这就相当于01背包了,n当作背包体积。但是要注意,如果背包剩余空间不够当前操作导致无法求出最优解呢?
所以背包剩余体积就算不够也可以放进去(具体见代码)
1 #include<stdio.h>
2 #include<string.h>
3 #include<iostream>
4 #include<algorithm>
5 #include<queue>
6 #include<map>
7 #include<vector>
8 #include<math.h>
9 #define mem(a,x) memset(a,x,sizeof(a))
10 using namespace std;
11 typedef long long ll;
12 const int maxn=2000+10;
13 const int mod=26;
14 const int INF=0x3f3f3f3f;
15 const int Times = 10;
16 const int N = 5500;
17 const long long int MAX=(long long int)1<<62;
18 ll dp[maxn];
19 struct shudui
20 {
21 ll t,c;
22 }m[maxn];
23 int main()
24 {
25 ll n;
26 scanf("%I64d",&n);
27 for(ll i=0;i<n;++i)
28 {
29 scanf("%I64d%I64d",&m[i].t,&m[i].c);
30 m[i].t+=1;
31 }
32 for(int i=0;i<=n;++i)
33 dp[i]=MAX; //这里要用MAX而不能用INF
34 dp[0]=0;
35 for(ll i=0;i<n;++i)
36 {
37 for(ll j=n;j>0;--j) //注意这个for循环j得终止条件是j<=0
38 {
39 ll ans;
40 //这个就是背包溢出的处理
41 if(j<m[i].t) ans=0;
42 else ans=j-m[i].t;
43 dp[j]=min(dp[j],dp[ans]+m[i].c);
44 }
45 }
46 printf("%I64d\n",dp[n]);
47 return 0;
48 }
Checkout Assistant CodeForces - 19B的更多相关文章
- CodeForces 19B Checkout Assistant
B. Checkout Assistant time limit per test 1 second memory limit per test 256 megabytes input standar ...
- B. Checkout Assistant 01背包变形
http://codeforces.com/problemset/problem/19/B 对于每个物品,能偷多ti个,那么先让ti + 1, 表示选了这个东西后,其实就是选了ti + 1个了.那么只 ...
- [CF19B]Checkout Assistant
题目描述 Bob 来到一家现购自运商店,将 n 件商品放入了他的手推车,然后到收银台 付款.每件商品由它的价格 pi 和收银员扫描它的时间 ti 秒定义.当收银员正在扫 描某件商品时,Bob 可以从他 ...
- Codeforces Beta Round #19
A. World Football Cup #include <bits/stdc++.h> using namespace std; ; char name[N][N]; map&l ...
- CF dp 题(1500-2000难度)
前言 从后往前刷 update 新增 \(\text{\color{red}{Mark}}\) 标记功能,有一定难度的题标记为 \(\text{\color{red}{红}}\) 色. 题单 (刷过的 ...
- codeforces 377A. Puzzles 水题
A. Puzzles Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/33 ...
- Codeforces Round #415 (Div. 2)(A,暴力,B,贪心,排序)
A. Straight «A» time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...
- Codeforces Round#415 Div.2
A. Straight «A» 题面 Noora is a student of one famous high school. It's her final year in school - she ...
- CodeForces 337A Puzzles
Puzzles Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on CodeForces. Origina ...
随机推荐
- Fail2ban工具使用
Fail2ban fail2ban扫描日志文件并且可以识别禁用某些多次尝试登录的IP,通过更新系统的防火墙规则来实现拒绝该IP连接,也可以配置禁用的时间.fail2ban提供了一些常用软件默认的日 ...
- 十五:SQL注入之oracle,Mangodb注入
Access,Mysql,mssql,mangoDB,postgresql,sqlite,oracle,sybase JSON类型的数据注入: 键名:键值 {"a":"1 ...
- Java进阶专题(二十一) 消息中间件架构体系(3)-- Kafka研究
前言 Kafka 是一款分布式消息发布和订阅系统,具有高性能.高吞吐量的特点而被广泛应用与大数据传输场景.它是由 LinkedIn 公司开发,使用 Scala 语言编写,之后成为 Apache 基金会 ...
- 关于BAPI_GOODSMVT_CREATE中货物移动相关事务代码说明
BAPI_GOODSMVT_CREATE参数 goodsmvt_code中的GM_CODE是为 BAPI 货物移动分配事务代码 其取值为下面对应的事务代码: 01 MB0102 MB3103 MB1A ...
- commons-lang3相关类实例
一.ArrayUtils //1.判断两个数组长度是否相等 ArrayUtils.isSameLength(new int[] {1,2,3,4}, new int[] {1,2,3,4});//tr ...
- Docker 如何动态给SpringBoot项目传参
关于SpringBoot配置数据源 在项目开发中,我们往往需要配置多套不同的配置环境例如:本地开发.测试环境.部署环境.每一个环境的数据源配置可能都不同,因此需要写不同的数据源配置.如果用Docker ...
- ichartjs插件的使用
项目中可能会用到饼状图.柱状图.环形图等,ichartjs是一个很不错的插件,体量小,只需引入ichart.1.2.1.min.js即可满足基础需求,github下载地址是:https://githu ...
- C++ unordered_map/unordered_set 自定义键类型
1. unordered_map 和 unordered_set template < class Key, // unordered_map::key_type class T, // uno ...
- python系统监控及邮件发送
python系统监控及邮件发送 #psutil模块是一个跨平台库,能轻松实现获取系统运行的进程和系统利用率 import psutil ...
- ELK (elasticsearch+kibana+logstash+elasticsearch-head) 华为云下载地址
https://mirrors.huaweicloud.com/elasticsearch https://mirrors.huaweicloud.com/kibana https://mirrors ...