标签:
题目:
题目描述
现在你是一名足球经理,你的队伍将参加“南邮杯”的比赛。然而你拥有预知未来的能力,你可以预见你的队伍接下来进行的n场比赛每场的进球数和失球数。每胜一场队伍可得3分,平一场可得1分,输一场得0分。然而“南邮杯”是有黑幕的,你通过砸钱现在可以买到m个进球,问现在如何安排这m个进球,可以使得队伍获得最大的积分,求出这个最大的积分。
输入
多样例输入。
第一行给出n(1<=n<=10)和m(0<=m<=20)分别代表你队伍进行的比赛数以及队伍可买的进球数。
接下来n行,每行分别有两个数x和y分别表示该场比赛在没有买进球的情况下你队伍的进球数和失球数。
输出
对于每个样例答案输出一行输出一个整数,表示通过买球的方式你的队伍可获得的最大积分。
样例输入
2 1
1 1
1 1
3 2
1 3
3 1
2 2
4 10
1 1
2 2
1 3
0 4
样例输出
4
6
12
题目来源
NUPT
题目分析:
贪心。一次录入赢球数,输球数。然后先把平局补成赢局。然后根据(输球数-赢球数)对输球的比赛进行贪心。然后求结果即可。
以下代码能够AC,但我不知道是否正确理解了出题人的意思,以下代码仅供参考。
代码如下:
/* * d.cpp * * Created on: 2015年3月29日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <algorithm> using namespace std; const int maxn = 15; struct Ball { int win; int lose; int dis; double ratio; } balls[maxn]; bool cmp(Ball a, Ball b) { return a.dis < b.dis; } bool cmp1(int a,int b){ return a < b; } void printBalls(int n) { int i; for (i = 0; i < n; ++i) { printf("%d %d %d\n", balls[i].win, balls[i].lose, balls[i].dis); } } int main() { int n, m; while (scanf("%d%d", &n, &m) != EOF) { int i; for (i = 0; i < n; ++i) { scanf("%d%d", &balls[i].win, &balls[i].lose); balls[i].dis = balls[i].lose - balls[i].win; } int lose_p[maxn]; int lost_cnt = 0; int win_or_p[maxn]; int win_or_cnt = 0; for (i = 0; i < n; ++i) { if (m > 0) { if (balls[i].dis == 0) { balls[i].win++; m--; balls[i].dis = -1; } } } for (i = 0; i < n; ++i) { if (balls[i].dis > 0) { lose_p[lost_cnt++] = balls[i].dis; } else { win_or_p[win_or_cnt++] = balls[i].dis; } } sort(lose_p, lose_p + lost_cnt, cmp1); int ans = 0; for (i = 0; i < lost_cnt; ++i) { if (m > 0) { if (m > (lose_p[i] )) { m -= (lose_p[i] + 1); lose_p[i] = -1; } else if (m == (lose_p[i])) { m -= (lose_p[i]); lose_p[i] = 0; } } } for (i = 0; i < lost_cnt; ++i) { if (lose_p[i] < 0) { ans += 3; } else if (lose_p[i] == 0) { ans += 1; } } for(i = 0 ; i < win_or_cnt ; ++i){ if(win_or_p[i] < 0){ ans += 3; }else if(win_or_p[i] == 0){ ans += 1; } } // printf("m:%d\n", m); // printf("%d\n", ans); cout << ans << endl; } return 0; }
标签:
原文地址:http://blog.csdn.net/hjd_love_zzt/article/details/44752589