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

查看6道真题和解析