首页 > 其他 > 详细

长春理工大学第十四届程序设计竞赛(重现赛)J.Printout

时间:2019-06-09 01:37:22      阅读:164      评论:0      收藏:0      [点我收藏+]

链接:https://ac.nowcoder.com/acm/contest/912/J

题意:

小r为了打校赛,他打算去打字社打印一份包含世界上所有算法的模板。

到了打字社,小r一看价格:总打印页数X0X0页以下(不含X0X0)x0x0元每页,X0X1X0∼X1页(不含X1X1)x1x1元每页,X1X2X1∼X2页(不含X2X2)x2x2元每页,X2X3X2∼X3页(不含X3X3)x3x3元每页,X3X4X3∼X4页(不含X4X4)x4x4元每页……

小r转念一想,他可以多放一些白纸在模板里面,还能花更少的钱。

给出小r要打印的模板页数n以及价格列表X和x,小r想知道他打印的最少花费为多少钱?

注意:小r只能打印一次,不能将一篇文章分多次打印。

思路:

先找出第一个满足的,再挨个往后找全部,纸张不断增加,取最小值即可。

代码:

#include <bits/stdc++.h>
 
using namespace std;
 
typedef long long LL;
const int MAXN = 1e3 + 10;
const int MOD = 1e9 + 7;
int n, m, k, t;
 
int pages[MAXN];
double money[MAXN];
 
int main()
{
    cin >> n >> m;
    for (int i = 1;i <= m;i++)
        cin >> pages[i];
    for (int i = 1;i <= m;i++)
        cin >> money[i];
    int i = 1;
    double res;
    for (i = 1;i <= n;i++)
        if (pages[i] > n)
        {
            res = n*money[i];
            break;
        }
    for (i++;i <= m;i++)
    {
        res = min(res, 1.0*pages[i-1]*money[i]);
    }
    cout << res << endl;
 
    return 0;
}

  

长春理工大学第十四届程序设计竞赛(重现赛)J.Printout

原文:https://www.cnblogs.com/YDDDD/p/10992204.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!