谁能提供IPL ZCO 2014的伪代码给我?

Can anyone provide me pseudocode of IPL ZCO 2014?

本文关键字:伪代码 2014 ZCO IPL      更新时间:2023-09-26

链接:https://www.codechef.com/ZCOPRAC/problems/ZCO14004。我可以通过代码递归地完成它:

  ans=answer(array[],0,0,0);
  function answer(tokens[], j, ans,n){
if(n==0||i>=tokens.length){
return 0;
   }
int k=ans+=tokens[i];
if(max<(k)){
    max=k;
}
ans(tokens,i+1,ans,n-1);
ans(tokens,i+2,ans,2);
return max;
}

但是对于大的输入,这需要大量的时间。请告诉我应该在哪里记密码。由于

据我所知,线性方法可以用一种非常简单的方式实现。对于每款游戏,我们有三种可能的最佳收益情况:

  • 有两个游戏可以玩
  • 可以多玩一个游戏
  • 带有强制暂停

因此,跟踪这三个变量并使用简单的数学运算处理循环变量就足够了。

var input = [3, 2, 3, 2, 3, 5, 1, 3];
var sum2 = 0; // best case with two more games allowed
var sum1 = 0; // best case with one more game allowed
var sum0 = 0; // best case with no more game allowed
for (var i = 0; i < input.length; i++) {
  var best = Math.max(sum0, sum1, sum2);
  sum0 = sum1 + input[i];
  sum1 = sum2 + input[i];
  sum2 = best;
}
document.write(Math.max(sum0, sum1, sum2));