1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #include <vector>
 5 #include <map>
 6 using namespace std;
 7 const int inf = 0x3f3f3f3f;
 8 const int MAX = +;
 9 double GPA[],dp1[][],dp2[][];
 map<int,int> hash;
 void init() {
     memset(GPA,,sizeof(GPA));
     for(int i=;i<=;i++) hash[i]=;
     for(int i=;i<=;i++) hash[i]=;
     for(int i=;i<=;i++) hash[i]=;
     for(int i=;i<=;i++) hash[i]=;
     for(int i=;i<=;i++) hash[i]=;
     GPA[]=2.0; GPA[]=2.5; GPA[]=3.0;
     GPA[]=3.5; GPA[]=4.0;
     memset(dp2,,sizeof(dp2));
     for(int i=;i<=;i++) {
         for(int j=;j<=;j++) dp1[i][j]=inf;
     }
     for(int i=;i<=;i++) {
         dp1[][i]=GPA[hash[i]];
         dp2[][i]=GPA[hash[i]];
     }
     for(int i=;i<=;i++) {
         for(int v=;v<=;v++) {
             for(int j=;j<=;j++) {
                 if(v>=j) {
                     if(i==) {
                         dp1[i][v]=min(dp1[i][v],dp1[i-][v-j]+GPA[hash[j]]);
                         dp2[i][v]=max(dp2[i][v],dp2[i-][v-j]+GPA[hash[j]]);
                     }
                     else if(((double)(v-j)/(double)(i-))>=) {
                         dp1[i][v]=min(dp1[i][v],dp1[i-][v-j]+GPA[hash[j]]);
                         dp2[i][v]=max(dp2[i][v],dp2[i-][v-j]+GPA[hash[j]]);
                     }
                 }
             }
         }
     }
 
 
 }
 int main() {
     int n,cnt,ave; init();
     scanf("%d",&n);
     while(n--) {
         scanf("%d %d",&ave,&cnt);
         int tot=ave*cnt;
         printf("%.4lf %.4lf\n",dp1[cnt][tot]/(double)cnt,dp2[cnt][tot]/(double)cnt);
     }
     return ;
 }

Improving the GPA

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 181    Accepted Submission(s): 148

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

有是一道傻比dp,没判不合法情况逗比3小时才过。

HDU 4968 (水dp 其他?)的更多相关文章

  1. Tickets HDU - 1260 水DP

    HDU - 1260 现在有n个人要买电影票,如果知道每个人单独买票花费的时间, 还有和前一个人一起买花费的时间,问最少花多长时间可以全部买完票. 直接dp就行,注意下输出和初始化 每次从dp[i-1 ...

  2. HDU 4968 Improving the GPA(dp)

    HDU 4968 Improving the GPA 题目链接 dp.最大最小分别dp一次,dp[i][j]表示第i个人,还有j分的情况,分数能够减掉60最为状态 代码: #include <c ...

  3. HDU 2084 数塔 (水DP)

    题意:.... 析:从下往上算即可,水DP. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #incl ...

  4. hdu 2571 命运(水DP)

    题意: M*N的grid,每个格上有一个整数. 小明从左上角(1,1)打算走到右下角(M,N). 每次可以向下走一格,或向右走一格,或向右走到当前所在列的倍数的列的位置上.即:若当前位置是(i,j), ...

  5. CodeForces 706C Hard problem (水DP)

    题意:对于给定的n个字符串,可以花费a[i]  将其倒序,问是否可以将其排成从大到小的字典序,且花费最小是多少. 析:很明显的水DP,如果不是水DP,我也不会做.... 这个就要二维,d[2][max ...

  6. hdu 4123 树形DP+RMQ

    http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...

  7. hdu 4507 数位dp(求和,求平方和)

    http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...

  8. hdu 3709 数字dp(小思)

    http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...

  9. 水dp第二天(背包有关)

    水dp第二天(背包有关) 标签: dp poj_3624 题意:裸的01背包 注意:这种题要注意两个问题,一个是要看清楚数组要开的范围大小,然后考虑需要空间优化吗,还有事用int还是long long ...

随机推荐

  1. static属性

    static 属于全局,也就是类的属性 和方法,换句话说 一个类,不管有多少个实例,却只有一个全局变量 用static修饰的属性和方法称为静态属性和方法 需要注意的是 静态属性和方法属于类方法,加载类 ...

  2. IOS 绘制PDF -转

    -(void)createPdf:(UIImage *)img andText:(NSString *)text{ NSArray *paths = NSSearchPathForDirectorie ...

  3. 点击后打开QQ临时会话

    1.QQ官方提供的代码.如果没有加好友需要加好友才能聊天,也可以到这里http://shang.qq.com/v3/index.html 开通一个服务,同样可以实现临时会话. <a href=& ...

  4. Bmob使用心得

    1.在 Project 的 build.gradle 文件中添加 Bmob的maven仓库地址,示例如下:(注意文字说明部分): allprojects { repositories { jcente ...

  5. java 解析四则混合运算表达式并计算结果

    package ch8; import java.util.LinkedList; import java.util.List; import java.util.Stack; /** * 四则混合运 ...

  6. iTOP-4412开发板-LinuxC-继电器模块的测试例程

    平台:iTOP-4412开发板 实现:继电器模块测试例程 继电器的 C 的测试程序,C 测试程序可以在 Android系统,Qt 系统以及最小 linux 系统上运行,文档以 Android 系统上测 ...

  7. 对比props

    1.在组件中data返回数组对象 2.在父级作用域中写入 (1)prop传值 <btn-grp :buttons="buttons"></btn-grp> ...

  8. JavaSE-16 集合框架

    学习要点 Java集合框架内容 ArrayList和LinkedList HashMap Iterator 泛型集合 Java的集合框架 1  概述 数据结构是以某种形式将数据组织在一起的集合,它不仅 ...

  9. secureCRT 破解

    转自:http://www.cnblogs.com/qingtingzhe/articles/5008902.html

  10. cc.Button

    cc.Button 1:添加按钮的方法 (1)直接创建带Button组件的节点; (2)先创建节点,再添加组件;2:按钮组件, 按钮是游戏中最常用的组件, 点击然后响应事件;3: 按钮的过渡效果:  ...