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; }