codeforces 955A Feed the cat

题目链接:http://codeforces.com/contest/955/problem/A

题意:你养了一只小狗狗,给你hh,mm,h,d,c,n,代表在hh小时mm分这个时刻你的狗狗的饥饿值为n,然后每过一分钟,你的狗狗的饥饿值会增加d。现在你需要去超时给你的狗狗买食物,每个食物花费为c,可以回复n的饥饿值。然后每天晚上20点之后,物品价格会打8折。然后问你把狗狗的饥饿变为0,最少需要花费多少钱。

分析:当时间为20点之后,显然直接购买8折的食物花费最少。当时间为20点之前,我们可以考虑直接购买或者等到20点后购买两种情况即可。

AC代码:

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main(){
 6     ios_base::sync_with_stdio(0);
 7     cin.tie(0);
 8     int mm,hh,h,d,c,n;
 9     double result=0;
10     while(cin>>hh>>mm){
11         cin>>h>>d>>c>>n;
12         if(hh<20){
13             result=min((double)(h/n+(h%n!=0))*c,(double)(((20*60-hh*60-mm)*d+h)/n+(((20*60-hh*60-mm)*d+h)%n!=0))*c*0.8);
14         }
15         else {
16             result=(double)(h/n+(h%n!=0))*c*0.8;
17         }
18         cout<<result<<endl;
19     }
20 return 0;
21 }
View Code
原文地址:https://www.cnblogs.com/ls961006/p/8660736.html