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 题解的更多相关文章

  1. codeforces B. Vasya and Public Transport 解题报告

    题目链接:http://codeforces.com/problemset/problem/355/B 题目意思:给出四种票种,c1: 某一部bus或者trolley的单程票(暗含只可以乘坐一次):c ...

  2. cf B. Vasya and Public Transport

    http://codeforces.com/contest/355/problem/B #include <cstdio> #include <cstring> #includ ...

  3. Hdoj 2149.Public Sale 题解

    Problem Description 虽然不想,但是现实总归是现实,Lele始终没有逃过退学的命运,因为他没有拿到奖学金.现在等待他的,就是像FarmJohn一样的农田生涯. 要种田得有田才行,Le ...

  4. CF1042E Vasya and Magic Matrix 题解

    题目链接 思路分析 看到题目中 \(n,m \leq 1000\) ,故直接考虑 \(O(n^2)\) 级别做法. 我们先把所有的点按照 \(val\) 值从小到大排序,这样的话二维问题变成序列问题. ...

  5. 2021CCPC网络赛(重赛)题解

    自己还是太菜了,五个小时一个题也没磕出来,还是队友牛逼!... Primality Test 先看这个题,可能一上去就被\(\frac{f(x)+f(f(x))}{2}\)向下取整吓住了,但仔细想想, ...

  6. CF311B Cats Transport 斜率优化DP

    题面:CF311B Cats Transport 题解: 首先我们观察到山与距离其实是没有什么用的,因为对于任意一只猫,我们都可以直接算出如果有一个人要恰好接走它,需要在哪一时刻出发,我们设第i只猫对 ...

  7. Codeforces Gym 100418J Lucky tickets 数位DP

    Lucky ticketsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view ...

  8. Java 中的构造方法

    首先创建一个Transport类,定义好类的属性和方法,并且写好构造方法,先看下无参数的构造方法: public class Transport { //名字 public String name; ...

  9. 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 ...

随机推荐

  1. [loj2478]林克卡特树

    原题等价于选择恰好$k+1$条不相交(无公共点)的路径使得边权和最大 证明:对于原题中的最优解,一定包含了k条0边权的边(否则可以将未使用的边删掉,然后将这条路径的末尾与不在同一个连通块内的点连边), ...

  2. [bzoj1853]幸运数字

    容易发现幸运数字只有1024个,暴力标记倍数还是会tle的 容斥,即从中任选i个的lcm,复杂度为$o(2^1024)$ 剪枝一:当答案超过1024就不用算了 剪枝二:当某个数是另一个数的倍数时就删掉 ...

  3. 模版 动态 dp

    模版 动态 dp 终于来写这个东西了.. LG 模版:给定 n 个点的数,点有点权, $ m $ 次修改点权,求修改完后这个树的最大独立集大小. 我们先来考虑朴素的最大独立集的 dp \[dp[u][ ...

  4. 洛谷 P4497 - [WC2011]拼点游戏(数据结构综合)

    题面传送门 神仙 DS. 首先关于第一问可以轻松想到一个 DP,\(dp_{i,j}\) 表示考虑到第 \(i\) 位,这一位奇偶性为 \(j\) 的最大权值,时间复杂度 \(n^2q\),可以拿到 ...

  5. 洛谷 P6499 - [COCI2016-2017#2] Burza(状压 dp)

    题面传送门 一道挺有意思的思维题(?) 首先我们假设根节点深度为 \(0\),那么 Daniel 的目标显然就是堵住一些节点使得 Stjepan 不能移动到深度为 \(k\) 的节点,Stjepan ...

  6. Java设计模式之(十四)——策略模式

    1.什么是策略模式? Define a family of algorithms, encapsulate each one, and make them interchangeable. Strat ...

  7. python-django-分页处理

    每个模型都有一个管理器,Manager 通过分页可以先加载一部分的数据内容,然后避免大量的查询带来的等待时间 应用场景是,排行榜,前十条或者 for i in range(100): ...: ... ...

  8. 完全用Deepin Linux娱乐、工作、学习(1)

    截至今天我已经用全Deepin Desktop Linux环境娱乐.工作.学习了100多天.当你看到这个桌面的时候,会不会觉得它是MacOS?错了,它是Deepin Desktop Linux,而且它 ...

  9. 作为Java技术面试官,我如何深挖候选人的技能

    作为Java资深技术面试官,首先我感觉有必要讲解"面试官深挖问题"的动机,在了解动机的前提下,大家才能更好地准备面试.面试官为什么要在一个点上深挖?两大目的.   1 首先是通过深 ...

  10. springcloud - alibaba - 2 - 集成Feign - 更新完成

    1.依赖 依赖管理 <parent> <artifactId>spring-boot-parent</artifactId> <groupId>org. ...