2014多校1009--hdu4968--Improving the GPA(平均成绩的最大最小平均学分)

Improving the GPA

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

Total Submission(s): 65    Accepted Submission(s): 43

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

 

给出n科的平均成绩,问最低和最高的平均学分会是多少?

一开始看很麻烦的一个题,因为分数不一定,将成绩分成了五个分数段,每段都可以有ki科,每个分数段的科目加起来是n个,这样遍历出所有的可能,如果每一段都去最高分,得到一个最高可能的平均分,每一段都取最低分,得到最低的平均分,如果给出的平均分在这一段内那么这一种的成绩就可能存在,统计该情况的平均学分,最后得出所有情况的平均学分的最小值和最大值。

时间:n最大是10,所以最多需要确定4个段就可以得到最后一个段的科目数,时间也就是 10^4.

#include <cstring>
#include <cstdio>
#include <math.h>
#include <algorithm>
using namespace std;
int main()
{
    int t, n, a, i, tot, j, k, h, i1, j1, k1, h1, i2, j2, k2, h2;
    double max1, tmp, min1;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&a,&n);
        max1=-1;
        min1=1e9;
        a*=n;
        for(i=0; i<=n; i++)
        {
            i1=i*100;
            i2=i*85;
            for(j=0; j<=n-i; j++)
            {
                j1=j*84;
                j2=j*80;
                for(k=0; k<=n-i-j; k++)
                {
                    k1=k*79;
                    k2=k*75;
                    for(h=0; h<=n-i-j-k; h++)
                    {
                        h1 = h * 74 ;
                        h2 = h * 70 ;
                        int z=n-i-j-k-h;
                        ////printf("zz --- %d %d %d %d %d\n" , i, j, k, h, z);
                        int maxans=i1+j1+k1+h1+z*69;
                        int minans=i2+j2+k2+h2+z*60;
                        if(a>=minans&&a<=maxans)
                        {
                             //printf("kkkk --- %d %d %d %d %d\n" , i, j, k, h, z);
                            tmp=i*4+j*3.5+k*3.0+h*2.5+z*2;
                            if(max1<tmp)
                            {
                                max1=tmp;
                                //printf("max --- %d %d %d %d %d\n" , i, j, k, h, z);
                            }
                            if(min1>tmp)
                            {
                                min1=tmp;
                                //printf("min --- %d %d %d %d %d\n" , i, j, k, h, z);
                            }
                        }
                    }
                }
            }
        }
        printf("%.4lf %.4lf\n",min1/n,max1/n);
    }
    return 0;
}

2014多校1009--hdu4968--Improving the GPA(平均成绩的最大最小平均学分)

时间: 2024-11-06 15:13:42

2014多校1009--hdu4968--Improving the GPA(平均成绩的最大最小平均学分)的相关文章

HDU4968 Improving the GPA dfs

题意:给你平均分数,让你给出可能的最大的gpa和最小的gpa 解题思路:最开始因为误判了时间复杂度所以没敲,敲完1002以后发现一个dfs就可以解决了,枚举0 - 100000表示每个档次有多少科,最后算下总分是不是可能就行,dfs减枝会略微的快一点. 1 // File Name: 1009.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月19日 星期二 12时16分48秒 4 5 #include<vector> 6 #inclu

HDU4968:Improving the GPA(DP)

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(杭电多校#9 1009题)Improving the GPA (瞎搞)

题目地址:HDU 4968 这题的做法是全部学科的学分情况枚举,然后推断在这样的情况下是否会符合平均分. 直接暴力枚举就可以. 代码例如以下: #include <cstring> #include <cstdio> #include <math.h> #include <algorithm> using namespace std; int main() { int t, n, a, i, tot, j, k, h, i1, j1, k1, h1, i2,

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

Improving the GPA(hdu4968)dfs

Improving the GPA Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 206 Accepted Submission(s): 168 Problem Description Xueba: Using the 4-Point Scale, my GPA is 4.0. In fact, the AVERAGE SCORE of

2014多校训练九(HDU 4960 HDU 4961 HDU 4965 HDU 4968 HDU 4969 HDU 4970)

HDU 4960 Another OCD Patient 题意:给你一串数字  相邻x个数字合并成一个数字(相加)有一定代价  问  最少花费多少使得串变成回文串 思路: 读完题感觉像dp  数据范围也像  就开始想怎么表示状态  最简单的应该想到dp[i][j]表示i到j区间变成回文串的最小花费  状态想好了想做法  考虑将串分成AAAABBBBBBBCCC三段  即所有A合成一个数字  C也是  而且A和C相等  那么B串就变成了子问题  但是A和C是不是都要枚举呢?  这个串所有元素都是正

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 AVER

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

2014多校联合第一场

1001:Couple doubi 暴力打表找规律可知,对于任意的p. (1^i+2^i+...+(p-1)^i)%p={ 非0     ,i%(p-1)==0 0        ,  i%(p-1)!=0 } 所以,结果就很显然了. #include <iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<stdlib.h> #include<c