1. 花样滑冰比赛6/8 有两个样例过不去,有没有大神给建议

2022年北京冬奥会刚刚过去,冬奥为我们留下了非常深刻的印象。在首都体育馆进行的花样滑冰比赛尤其激烈。

我们假设一名花样滑冰运动员在一次表演中可以做不限多个动作,但是动作不可重复,每个动作消耗体力n,得分m,m和n都<100

运动员的体力值为e,e<100 那么假设有a1 a2 a3 a4 a5 a6 ... an多个动作可选择,那么体力值为e的运动员在整场比赛中能够最多拿多少分呢?

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 运动员可得到的最高分
 * @param energy int整型 运动员体力值
 * @param actions int整型二维数组 二维数组i为动作号 actions[i][0]为动作i+1消耗体力,actions[i][1]为动作i+1得分
 * @param actionsRowLen int actions数组行数
 * @param actionsColLen int* actions数组列数
 * @return int整型
 */
#include <stdio.h>
int maxScore(int energy, int** actions, int actionsRowLen, int* actionsColLen ) {
    // write code here
    int sum;
    int temp;
    int max_score=0;
    int score;
    int a[actionsRowLen],b[actionsRowLen];
    int i,j;
    
    for(i=0;i<actionsRowLen;i++){
        temp=energy-actions[i][0];
        score=actions[i][1];
        sum=0;
        for(j=i+1;j<actionsRowLen;j++){
            //sum+=a[j];
            if(sum+actions[j][0]==temp){
                score+=actions[j][1];
                if(score>max_score)
                    max_score=score;
                //break;
            }
            else if (sum+actions[j][0]<temp){
                sum+=actions[j][0];
                score+=actions[j][1];
            }else{
                //max_score=score;
                continue;
            } 
            
        }
        if(score>max_score && actions[i][0]<=energy) max_score=score;

    }
    printf("%d",max_score);
    return max_score;


}

全部评论
有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。
点赞 回复 分享
发布于 09-06 16:48 浙江

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务