杭电Acm1015
来源:互联网 发布:虚幻4编程语言 编辑:程序博客网 时间:2024/05/17 01:17
(1)大意:
牛们收购了一个奶酪工厂,接下来的N个星期里,牛奶价格和劳力价格不断起伏.第i周,生产一个单位奶酪需要Ci(1≤Ci≤5000)便士.工厂有一个货栈,保存一单位奶酪,每周需要S(1≤S≤100)便士,这个费用不会变化.货栈十分强大,可以存无限量的奶酪,而且保证它们不变质.工厂接到订单,在第i周需要交付Yi(0≤Yi≤104)单位的奶酪给委托人.第i周刚生产的奶酪,以及之前的存货,都可以作为产品交付.请帮牛们计算这段时间里完成任务的最小代价.
第1行输入两个整数N和S.接下来N行输入Ci和Yi
(2)解题思路:
从第二天开始,每天都跟前一天比较,今天的单价是否比昨天的单价+s大,若是,则选择小的。当然,前天的单价+s+s若是比今天的还小,则用前天的+2*s;
(3)感想:真尼玛坑啊,破题一个,英语叙述那么长,怎么看懂?花了一小时才看懂,oj编译环境又那么弱智,真是够了!
(4)代码:
#include<iostream>
using namespace std;
int main()
{
int Price[100000], Number[100000];
int week, s, sum = 0;
cin >> week >> s;
for (int i = 0;i < week;i++)
{
cin >> Price[i];
cin >> Number[i];
}
for (int i = 0;i < week;i++)
{
if (i == 0)
{
sum = sum + Price[i] * Number[i];
}
else
{
if (Price[i] >= (Price[i - 1] + s))
{
Price[i] = Price[i - 1] + s;
sum = sum + Price[i]*Number[i];
}
else
{
sum = sum + Price[i] * Number[i];
}
}
}
cout << sum << endl;
using namespace std;
int main()
{
int Price[100000], Number[100000];
int week, s, sum = 0;
cin >> week >> s;
for (int i = 0;i < week;i++)
{
cin >> Price[i];
cin >> Number[i];
}
for (int i = 0;i < week;i++)
{
if (i == 0)
{
sum = sum + Price[i] * Number[i];
}
else
{
if (Price[i] >= (Price[i - 1] + s))
{
Price[i] = Price[i - 1] + s;
sum = sum + Price[i]*Number[i];
}
else
{
sum = sum + Price[i] * Number[i];
}
}
}
cout << sum << endl;
return 0;
}
另外附加一种方法,网上看到的:
<code class="hljs cpp has-numbering"><span class="hljs-preprocessor">#include <iostream></span><span class="hljs-preprocessor">#include <algorithm></span><span class="hljs-keyword">using</span> <span class="hljs-keyword">namespace</span> <span class="hljs-built_in">std</span>;<span class="hljs-keyword">const</span> <span class="hljs-keyword">int</span> maxn = <span class="hljs-number">10000</span> + <span class="hljs-number">5</span>;<span class="hljs-keyword">int</span> main(){ __int64 sum = <span class="hljs-number">0</span>; <span class="hljs-keyword">int</span> n, s, c[maxn], y[maxn]; <span class="hljs-built_in">cin</span> >> n >> s; c[<span class="hljs-number">0</span>] = maxn; <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">1</span>; i <= n; i++) { <span class="hljs-built_in">cin</span> >> c[i] >> y[i]; c[i] = min (c[i], c[i - <span class="hljs-number">1</span>] + s); sum += c[i] * y[i]; } <span class="hljs-built_in">cout</span> << sum << endl; <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;}</code>
0 0
- 杭电Acm1015
- 杭电acm1015
- 杭电ACM1015——Safecracker
- 浙工ACM1015
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- Ubuntu14.04下安装oracle JDK32位。并更换默认jdk
- HDU 2277 Change the ball(找规律)
- codeforces #343 C. Famil Door and Brackets (dp)
- PB控件TreeView的四个函数
- 数据结构2.2
- 杭电Acm1015
- for、while
- 安卓开发环境搭建常遇到的问题与总结
- 用Tensorflow基于Deep Q Learning DQN 玩Flappy Bird
- 初识CAPWAP
- 【HPU】[1731]QAQ的问题
- js中判断-1,、{}对应的布尔值
- 使用 PrintArea 打印 HTML 页面的内容
- php 处理高精度计算函数