题目链接:http://codeforces.com/problemset/problem/355/B

题目意思:给出四种票种,c1: 某一部bus或者trolley的单程票(暗含只可以乘坐一次);c2、c3、c4乘坐次数没有限制。c2:某一部bus或者trolley可以乘坐无限次;c3:所有的bus或者trolley可以乘坐无限次;c4:所有的bus和trolley可以乘坐无限次。根据给出的n buses 和m trolleys 每一辆的乘坐次数,找出最便宜的买票方式,输出要花费的金额。

对于每一部bus或者trolley,无非从c1或者c2选择。这里以选择某一个序号为 i 的bus的票为例。选择c2的条件是:(ai * c1) >  c2(加多个“=”也可以),否则选择c1。为所有的bus买完票后(每一个选择都符合局部最优的,贪心的核心思想啊~~),统计这个和,再与c3比较,得到不考虑买c4这种票的情况下,对所有bus来说最好的买票和。(有可能买一张所有bus都可以乘坐无限次的票比这个和还要便宜的!)trolley的买票选择也类似。也得到一个撇开c4,对所有trolley来说的最好买票和。把这两个和相加,再与c4比较,哪个较小即是答案。

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. using namespace std;
  5.  
  6. #define max(x, y) ((x) < (y) ? (x) : (y)) // 比较两个数的较小值
  7.  
  8. const int maxn = + ;
  9. int a[maxn], b[maxn];
  10.  
  11. int main()
  12. {
  13. int c1, c2, c3, c4, n, m, i;
  14. while (scanf("%d%d%d%d", &c1, &c2, &c3, &c4) != EOF)
  15. {
  16. scanf("%d%d", &n, &m);
  17. for (i = ; i < n; i++)
  18. scanf("%d", &a[i]); // buses
  19. for (i = ; i< m; i++)
  20. scanf("%d", &b[i]); // trolleys
  21. int sum1, sum2, max1, max2;
  22. sum1 = sum2 = ;
  23. for (i = ; i < n; i++)
  24. {
  25. if (a[i] * c1 <= c2)   // 买第一种票比第二种票便宜
    sum1 += a[i] * c1;
  26. else
  27. sum1 += c2;
  28. }
  29. for (i = ; i < m; i++)
  30. {
  31. if (b[i] * c1 <= c2)
  32. sum2 += b[i] * c1;
  33. else
  34. sum2 += c2;
  35. }
  36. max1 = max(sum1, c3);  // 组合了第一和第二种票的买票方式后,与买第三种票(所有bus乘坐次数无限制)作比较,求得较小值
    max2 = max(sum2, c3);
  37. max1 += max2;  // 在不考虑买第四种票的情况下buses和trolleys买票的最优值
    int maxsum = max(max1, c4); // 有可能买所有的bus和trolley的无限制搭乘次数的票(c4)比之前求得的最优值还好
    printf("%d\n", maxsum);
  38. }
  39. return ;
  40. }

codeforces B. Vasya and Public Transport 解题报告的更多相关文章

  1. codeforces A. Vasya and Digital Root 解题报告

    题目链接:http://codeforces.com/problemset/problem/355/A 题目意思:找出某个经过最多四次dr(n)操作等于d的k位数.   千万不要想得太复杂,想得越简单 ...

  2. codeforces C1. The Great Julya Calendar 解题报告

    题目链接:http://codeforces.com/problemset/problem/331/C1 这是第一次参加codeforces比赛(ABBYY Cup 3.0 - Finals (onl ...

  3. codeforces B. Eugeny and Play List 解题报告

    题目链接:http://codeforces.com/problemset/problem/302/B 题目意思:给出两个整数n和m,接下来n行给出n首歌分别的奏唱时间和听的次数,紧跟着给出m个时刻, ...

  4. codeforces 433C. Ryouko's Memory Note 解题报告

    题目链接:http://codeforces.com/problemset/problem/433/C 题目意思:一本书有 n 页,每页的编号依次从 1 到 n 编排.如果从页 x 翻到页 y,那么| ...

  5. Codeforces Round 319 # div.1 & 2 解题报告

    Div. 2 Multiplication Table (577A) 题意: 给定n行n列的方阵,第i行第j列的数就是i*j,问有多少个格子上的数恰为x. 1<=n<=10^5, 1< ...

  6. codeforces 556B. Case of Fake Numbers 解题报告

    题目链接:http://codeforces.com/problemset/problem/556/B 题目意思:给出 n 个齿轮,每个齿轮有 n 个 teeth,逆时针排列,编号为0 ~ n-1.每 ...

  7. codeforces 510B. Fox And Two Dots 解题报告

    题目链接:http://codeforces.com/problemset/problem/510/B 题目意思:给出 n 行 m 列只有大写字母组成的字符串.问具有相同字母的能否组成一个环. 很容易 ...

  8. codeforces 505A. Mr. Kitayuta's Gift 解题报告

    题目链接:http://codeforces.com/problemset/problem/505/A 题目意思:给出一个长度不大于10的小写英文字符串 s,问是否能通过在字符串的某个位置插入一个字母 ...

  9. codeforces 499A.Inna and Pink Pony 解题报告

    题目链接:http://codeforces.com/problemset/problem/499/A 题目意思:有两种按钮:1.如果当前观看的时间是 t,player 可以自动处理下一分钟,姑且理解 ...

随机推荐

  1. Day5_作业

     ATM作业:1.额度15000或自定义2.实现购物商城,买东西加入购物车,调用信用卡接口结账3.可以提现,手续费5%4.每月22号出账单,每月10号为还款日,过期未还,按欠款总额万分之5每日计息5. ...

  2. CSS文字排版

    一.font-size 我来试一试:为第一段中的“胆小如鼠”设置字号为:20px,字体颜色为:red. <!DOCTYPE HTML> <html> <head> ...

  3. linux 搭建SVN服务器,为多个项目分别建立版本库并单独配置权限

    1.安装svn服务    # yum install subversion   2.新建一个目录用于存储SVN所有文件    # mkdir /home/svn   3.在上面创建的文件夹中为项目 p ...

  4. PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明

    PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载   中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...

  5. Python socket编程之七:多窗口的应用

    f1.py # -*- coding: utf-8 -*- import socket import struct import sqlalchemy import pandas ########## ...

  6. CruiseControl.NET学习总结(转载)

    前些日子,总结了一个NAnt的学习总结.后来就放下了,松散了一阵子.CruiseControl.NET(以下称CC.NET),是我在学习完NAnt以后才开始看的,当时学起来就是在网上疯狂的找资料.现在 ...

  7. mysql字符串截取

    mysql字符串截取 update zcat ) where lev1 is null; update zcat ) where lev2 is null; 函数: 1.从左开始截取字符串 left( ...

  8. Entity Framework ModelFirst尝试

    前言 Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Stu ...

  9. 第三方平台正式支持接入微信公众平台JS-SDK

    之前微信公众平台面向开发者开放微信内网页开发工具包,现在第三方平台也能正式支持接入微信公众平台JS-SDK了,第三方平台可以在获得公众号的授权后,通过JS-SDK帮助公众号开发和实现网页业务. 公众号 ...

  10. 尽量不要用工具频繁去查询排名结果_seo优化禁忌

    关注网站每天的关键词排名.权重有没变化.外链有没有增长...巴不得明天关键词就窜到首页.第一.百度权重从0涨到3等等,这些是seo新手常见的心态.当然每个人都希望那样,但是seo是一个渐进积累的过程, ...