HDOJ 4968 Improving the GPA

枚举。。。

Improving the GPA

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)

Total Submission(s): 158    Accepted Submission(s): 126

Problem Description

Xueba: Using the 4-Point Scale, my GPA is 4.0.

In fact, the AVERAGE SCORE of Xueba is calculated by the following formula:

AVERAGE SCORE = ∑(Wi * SCOREi) / ∑(Wi) 1<=i<=N

where SCOREi represents the scores of the ith course and Wi represents the credit of the corresponding course.

To simplify the problem, we assume that the credit of each course is 1. In this way, the AVERAGE SCORE is ∑(SCOREi) / N. In addition, SCOREi are all integers between 60 and 100, and we guarantee that ∑(SCOREi) can be divided by N.

In SYSU, the university usually uses the AVERAGE SCORE as the standard to represent the students’ level. However, when the students want to study further in foreign countries, other universities will use the 4-Point Scale to represent the students’ level. There
are 2 ways of transforming each score to 4-Point Scale. Here is one of them.

The student’s average GPA in the 4-Point Scale is calculated as follows:
GPA = ∑(GPAi) / N

So given one student’s AVERAGE SCORE and the number of the courses, there are many different possible values in the 4-Point Scale. Please calculate the minimum and maximum value of the GPA in the 4-Point Scale.

Input

The input begins with a line containing an integer T (1 < T < 500), which denotes the number of test cases. The next T lines each contain two integers AVGSCORE, N (60 <= AVGSCORE <= 100, 1 <= N <= 10).

Output

For each test case, you should display the minimum and maximum value of the GPA in the 4-Point Scale in one line, accurate up to 4 decimal places. There is a space between two values.

Sample Input

4
75 1
75 2
75 3
75 10

Sample Output

3.0000 3.0000
2.7500 3.0000
2.6667 3.1667
2.4000 3.2000

Hint

In the third case, there are many possible ways to calculate the minimum value of the GPA in the 4-Point Scale.
For example,
Scores 78 74 73 GPA = (3.0 + 2.5 + 2.5) / 3 = 2.6667
Scores 79 78 68 GPA = (3.0 + 3.0 + 2.0) / 3 = 2.6667
Scores 84 74 67 GPA = (3.5 + 2.5 + 2.0) / 3 = 2.6667
Scores 100 64 61 GPA = (4.0 + 2.0 + 2.0) / 3 = 2.6667

Source

2014 Multi-University Training Contest 9

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

int level[6][2]={{100,85},{84,80},{79,75},{74,70},{69,60},{59,0}};

int main()
{
    int T_T;
    scanf("%d",&T_T);
    while(T_T--)
    {
        int f,n;
        double mi=20.,mx=-20.;
        scanf("%d%d",&f,&n);
        for(int l1=0;l1<=n;l1++)
        {
            int res1=n-l1;
            for(int l2=0;l2<=res1;l2++)
            {
                int res2=n-l1-l2;
                for(int l3=0;l3<=res2;l3++)
                {
                    int res3=n-l1-l2-l3;
                    for(int l4=0;l4<=res3;l4++)
                    {
                        int l5=res3-l4;
                        int minsorce=level[0][1]*l1+level[1][1]*l2+level[2][1]*l3+
                        level[3][1]*l4+level[4][1]*l5;
                        int maxsorce=level[0][0]*l1+level[1][0]*l2+level[2][0]*l3+
                        level[3][0]*l4+level[4][0]*l5;
                        if(f*n<=maxsorce&&f*n>=minsorce)
                        {
                            mi=min(mi,(4.*l1+3.5*l2+3.*l3+2.5*l4+2.*l5)/n);
                            mx=max(mx,(4.*l1+3.5*l2+3.*l3+2.5*l4+2.*l5)/n);
                        }
                    }
                }
            }
        }
        printf("%.4lf %.4lf\n",mi,mx);
    }
    return 0;
}

HDOJ 4968 Improving the GPA,布布扣,bubuko.com

时间: 2024-10-14 07:48:07

HDOJ 4968 Improving the GPA的相关文章

hdu 4968 Improving the GPA dp

[题意]:每个成绩范围对应一个绩点,给出平均分avg,课程数n,求能得到的平均绩点的最大值和最小值. [解法]:   d[i][j]表示总分为i 课程数为j时 可以得到的最大的总绩点. 状态转移为: d[i][j]=max(d[i][j],d[i-k][j-1]+d[k][1]);   (60<=k<=100&&i-k>=60*(j-1)) 1 #include<iostream> 2 #include<cstdio> 3 #include<

HDU 4968 Improving the GPA

Problem Description Xueba: Using the 4-Point Scale, my GPA is 4.0. In fact, the AVERAGE SCORE of Xueba is calculated by the following formula: AVERAGE SCORE = ∑(Wi * SCOREi) / ∑(Wi) 1<=i<=N where SCOREi represents the scores of the ith course and Wi

HDU 4968 Improving the GPA(dp)

HDU 4968 Improving the GPA 题目链接 dp,最大最小分别dp一次,dp[i][j]表示第i个人,还有j分的情况,分数可以减掉60最为状态 代码: #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int t, avg, n; double dp1[15][405], dp2[15][405]; double get(int x) { if

hdu 4968 Improving the GPA (水 暴力枚举)

题目链接 题意:给平均成绩和科目数,求可能的最大学分和最小学分. 分析: 枚举一下,可以达到复杂度可以达到10^4,我下面的代码是10^5,可以把最后一个循环撤掉. 刚开始以为枚举档次的话是5^10,但是这个又不要求顺序,所以只是枚举个数就行了.. 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cmath&g

HDU 4968 Improving the GPA 模拟

最小时就都当69,最大时都当85 .. #include <cstdio> #include <iostream> #include <algorithm> #include <string.h> #include <math.h> #include <vector> #include <map> #include <queue> using namespace std; #define N 5000 int

【瞎搞】HDU 4968 Improving the GPA

枚举一种GPA有多少个 总分1加上该GPA的最小分数 总分2加上该GPA的最大分数 若总分1<=输入分数×n<=总分2 则可以在枚举的状态达到目标分数 #include <stdio.h> #include <string.h> #include <math.h> #include <string> #include <algorithm> using namespace std; #define IN freopen ("

hdu 4968 Improving the GPA(暴力枚举)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4970 Problem Description Xueba: Using the 4-Point Scale, my GPA is 4.0. In fact, the AVERAGE SCORE of Xueba is calculated by the following formula: AVERAGE SCORE = ∑(Wi * SCOREi) / ∑(Wi) 1<=i<=N where S

HDU 4968 Improving the GPA 多校第九场1009

Problem Description Xueba: Using the 4-Point Scale, my GPA is 4.0. In fact, the AVERAGE SCORE of Xueba is calculated by the following formula: AVERAGE SCORE = ∑(Wi * SCOREi) / ∑(Wi) 1<=i<=N where SCOREi represents the scores of the ith course and Wi

【HDOJ 4968】 Improving the GPA

[HDOJ 4968] Improving the GPA 动态规划里的背包问题..比赛时候暴力做的 还好当时脑洞足... 暴力枚举 求最大值时初始n个成绩都为最大值所需的最小成绩–85 然后从第一个开始减 分数全都用掉时跳出 第一个减到60后第二个开始 以此类推 求最小值反向做即可 初始为最小值所需的最大成绩–64 背包方法 一维为当前成绩类数 二位为当前使用掉的分数(减去60 因为最小分为60 60之前都是无用空间) 初始dpmax -INF dpmin INF dpmax[0][0] =