题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3712
题意:
一款游戏,高手玩家不会miss,得分至少为50。记分公式为P = Point * (Combo * 2 + 1),求最多得多少分,最低得多少分。
简单的贪心,贪心策略:最高分先50,再100,最后300。最低分反之即可。
浙工大校赛的这道题稍微加强了下:
http://blog.csdn.net/david_jett/article/details/44563755
代码:
#include<iostream> #include<string> #include<cstring> using namespace std; int main() { int a,b,c; int T; cin>>T; while(T--) { cin>>a>>b>>c; int max1=0,min1=0; int i=1; for(;i<=a;i++) { min1+=300*((i-1)*2+1); } for(;i<=a+b;i++) { min1+=100*((i-1)*2+1); } for(;i<=a+b+c;i++) { min1+=50*((i-1)*2+1); } for(int i=1;i<=c;i++) { max1+=50*((i-1)*2+1); } for(int j=c+1;j<=c+b;j++) { max1+=100*((j-1)*2+1); } for(int i=c+b+1;i<=a+b+c;i++) { max1+=300*((i-1)*2+1); } cout<<min1<<" "<<max1<<endl; } return 0; }
时间: 2024-10-13 07:41:21