zoukankan      html  css  js  c++  java
  • 百度之星 Problem B

    题面

    小沃沃一共参加了 4 门考试,每门考试满分 100 分,最低 0 分,分数是整数。

    给定四门考试的总分,请问在最优情况下,四门课绩点的和最高是多少?

    分数与绩点之间的对应关系如下:

    95~100 4.3

    90~94 4.0

    85~89 3.7

    80~84 3.3

    75~79 3.0

    70~74 2.7

    67~69 2.3

    65~66 2.0

    62~64 1.7

    60~61 1.0

    0~59 0

    Input
    第一行一个正整数 test(1≤test≤401) 表示数据组数。
    接下来 test 行,每行一个正整数 x 表示四门考试的总分 (0≤x≤400)。

    Output
    对于每组数据,一行一个数表示答案。答案保留一位小数。

    Sample Input
    2
    0
    400

    Sample Output
    0.0
    17.2

    思路

    直接暴力就可以了,可以dfs和可以写个简单dp枚举状态。

    代码实现

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<cstring >
    #include<cmath>
    #include<vector>
    using namespace std;
    typedef long long ll;
    const int maxn=20; 
    
    double point [105];
    double dp[4][405];
    
    int main () {
        memset (dp,0,sizeof (dp) );
    
        for (int i=0;i<=100;i++) {
            if (i>=95&&i<=100) point [i]=4.3;
            else if (i>=90&&i<=94) point[i]=4.0;
            else if (i>=85&&i<=89) point[i]=3.7;
            else if (i>=80&&i<=84) point[i]=3.3;
            else if (i>=75&&i<=79) point[i]=3.0;
            else if (i>=70&&i<=74) point[i]=2.7;
            else if (i>=67&&i<=69) point[i]=2.3;
            else if (i>=65&&i<=66) point[i]=2.0;
            else if (i>=62&&i<=64) point[i]=1.7;
            else if (i>=60&&i<=61) point[i]=1.0;
            else point[i]=0.0;
        }
    
        for (int i=1;i<=4;i++)
         for (int j=0;j<=100*i;j++)
          for (int k=0;k<=min (100,j);k++) {
              dp[i][j]=max (dp[i][j],dp[i-1][j-k]+point[k]);
          }
        
        int t,x;
        cin>>t;
        while (t--) {
            cin>>x;
            printf ("%.1lf
    ",dp[4][x]);
        }
        return 0;
    }
    
  • 相关阅读:
    屏幕后处理方案
    颜色空间
    汉字编码
    物理引擎的确定性研究
    关于List<T>.Sort方法
    Mono跨平台系统大小端问题
    谜之UnityEngine.Object
    第三方平台隐私条款
    Unity DownloadHandler测试
    了解Xcode Bitcode
  • 原文地址:https://www.cnblogs.com/hhlya/p/13348140.html
Copyright © 2011-2022 走看看