CF355B Vasya and Public Transport 题解
Content
小 \(A\) 要乘坐交通工具,其中公交车的辆数是 \(n\),第 \(i\) 辆公交车的编号为 \(i\),乘坐次数为 \(a_i\);手推车的辆数是 \(m\),每辆手推车的编号为 \(i\),乘坐次数为 \(b_i\)。当地的公交公司给出了 \(4\) 种门票类型:
- 花费 \(c_1\) 元乘坐一次公交车或者一次手推车。
- 花费 \(c_2\) 元乘坐同一个编号的公交车或者同一编号的手推车无限次。
- 花费 \(c_3\) 元乘坐所有公交车或者所有手推车无限次。
- 花费 \(c_4\) 元乘坐所有公交车和所有手推车无限次。
求小 \(A\) 最少要花的钱数。
数据范围:\(1\leqslant c_1,c_2,c_3,c_4,n,m\leqslant 1000,0\leqslant a_i,b_i\leqslant 1000\)。
Solution
很显然,编号为 \(i\) 的公交车需要的收费 \(bus_i=\min\{c_2,a_i\cdot c_1\}\),同一编号的手推车需要的收费 \(tro_i=\min\{c_2,b_i\cdot c_1\}\)。
因此,乘坐所有的公交车需要收费 \(sumbus=\min\{c_3,\sum\limits_{i=1}^nbus_i\}\),乘坐所有的手推车需要的收费 \(sumtro=\min\{c_3,\sum\limits_{i=1}^mtro_i\}\)。
所以,总共的收费 \(ans=\min\{sumbus+sumtro,c_4\}\)。
根据这个直接推式子就行。
Code
#include <cstdio>
#include <algorithm>
using namespace std;
int c1, c2, c3, c4, n, m, a, b, sumbus, sumtro;
int main() {
scanf("%d%d%d%d%d%d", &c1, &c2, &c3, &c4, &n, &m);
for(int i = 1; i <= n; ++i) scanf("%d", &a), sumbus += min(c2, c1 * a);
for(int i = 1; i <= m; ++i) scanf("%d", &b), sumtro += min(c2, c1 * b);
return printf("%d", min(min(c3, sumbus) + min(c3, sumtro), c4)), 0;
}
CF355B Vasya and Public Transport 题解的更多相关文章
- codeforces B. Vasya and Public Transport 解题报告
题目链接:http://codeforces.com/problemset/problem/355/B 题目意思:给出四种票种,c1: 某一部bus或者trolley的单程票(暗含只可以乘坐一次):c ...
- cf B. Vasya and Public Transport
http://codeforces.com/contest/355/problem/B #include <cstdio> #include <cstring> #includ ...
- Hdoj 2149.Public Sale 题解
Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Le ...
- CF1042E Vasya and Magic Matrix 题解
题目链接 思路分析 看到题目中 \(n,m \leq 1000\) ,故直接考虑 \(O(n^2)\) 级别做法. 我们先把所有的点按照 \(val\) 值从小到大排序,这样的话二维问题变成序列问题. ...
- 2021CCPC网络赛(重赛)题解
自己还是太菜了,五个小时一个题也没磕出来,还是队友牛逼!... Primality Test 先看这个题,可能一上去就被\(\frac{f(x)+f(f(x))}{2}\)向下取整吓住了,但仔细想想, ...
- CF311B Cats Transport 斜率优化DP
题面:CF311B Cats Transport 题解: 首先我们观察到山与距离其实是没有什么用的,因为对于任意一只猫,我们都可以直接算出如果有一个人要恰好接走它,需要在哪一时刻出发,我们设第i只猫对 ...
- Codeforces Gym 100418J Lucky tickets 数位DP
Lucky ticketsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view ...
- Java 中的构造方法
首先创建一个Transport类,定义好类的属性和方法,并且写好构造方法,先看下无参数的构造方法: public class Transport { //名字 public String name; ...
- NFC Forum : Frequently Asked Questions (NFC 论坛:FAQ)
NFC for Business What is the NFC Forum? The NFC Forum is a not-for-profit industry organization whos ...
随机推荐
- [loj2478]林克卡特树
原题等价于选择恰好$k+1$条不相交(无公共点)的路径使得边权和最大 证明:对于原题中的最优解,一定包含了k条0边权的边(否则可以将未使用的边删掉,然后将这条路径的末尾与不在同一个连通块内的点连边), ...
- [bzoj1853]幸运数字
容易发现幸运数字只有1024个,暴力标记倍数还是会tle的 容斥,即从中任选i个的lcm,复杂度为$o(2^1024)$ 剪枝一:当答案超过1024就不用算了 剪枝二:当某个数是另一个数的倍数时就删掉 ...
- 模版 动态 dp
模版 动态 dp 终于来写这个东西了.. LG 模版:给定 n 个点的数,点有点权, $ m $ 次修改点权,求修改完后这个树的最大独立集大小. 我们先来考虑朴素的最大独立集的 dp \[dp[u][ ...
- 洛谷 P4497 - [WC2011]拼点游戏(数据结构综合)
题面传送门 神仙 DS. 首先关于第一问可以轻松想到一个 DP,\(dp_{i,j}\) 表示考虑到第 \(i\) 位,这一位奇偶性为 \(j\) 的最大权值,时间复杂度 \(n^2q\),可以拿到 ...
- 洛谷 P6499 - [COCI2016-2017#2] Burza(状压 dp)
题面传送门 一道挺有意思的思维题(?) 首先我们假设根节点深度为 \(0\),那么 Daniel 的目标显然就是堵住一些节点使得 Stjepan 不能移动到深度为 \(k\) 的节点,Stjepan ...
- Java设计模式之(十四)——策略模式
1.什么是策略模式? Define a family of algorithms, encapsulate each one, and make them interchangeable. Strat ...
- python-django-分页处理
每个模型都有一个管理器,Manager 通过分页可以先加载一部分的数据内容,然后避免大量的查询带来的等待时间 应用场景是,排行榜,前十条或者 for i in range(100): ...: ... ...
- 完全用Deepin Linux娱乐、工作、学习(1)
截至今天我已经用全Deepin Desktop Linux环境娱乐.工作.学习了100多天.当你看到这个桌面的时候,会不会觉得它是MacOS?错了,它是Deepin Desktop Linux,而且它 ...
- 作为Java技术面试官,我如何深挖候选人的技能
作为Java资深技术面试官,首先我感觉有必要讲解"面试官深挖问题"的动机,在了解动机的前提下,大家才能更好地准备面试.面试官为什么要在一个点上深挖?两大目的. 1 首先是通过深 ...
- springcloud - alibaba - 2 - 集成Feign - 更新完成
1.依赖 依赖管理 <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org. ...