链接:https://ac.nowcoder.com/acm/contest/912/J
题意:
小r为了打校赛,他打算去打字社打印一份包含世界上所有算法的模板。
到了打字社,小r一看价格:总打印页数X0X0页以下(不含X0X0)x0x0元每页,X0∼X1X0∼X1页(不含X1X1)x1x1元每页,X1∼X2X1∼X2页(不含X2X2)x2x2元每页,X2∼X3X2∼X3页(不含X3X3)x3x3元每页,X3∼X4X3∼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; }
原文地址:https://www.cnblogs.com/YDDDD/p/10992204.html
时间: 2024-10-08 15:30:40