这次很简单 第一题很简单哈直接做第二题非常简单的dp,跟跳台阶差不多第三题利用了前缀和的思想,主要是看数学式,而且大数卡了20%会所有数的地方改longlonglet t = 0;let n = 0;let mod = 1000000009;let tokens = [];while(line = await readline()){if(t==0){n = parseInt(line);}else{tokens = line.split(' ');tokens = tokens.map((p)=> {return parseInt(p)})}t++;}let ans = tokens[0];let dp = new Array(n+1).fill(0);let sum1 = tokens[0];let sum2 = tokens[0];dp[0] = tokens[0];let tot = 0;for(let i=1;i<n;i++){dp[i] = dp[i-1] + (i+1)*tokens[i];ans += dp[i];ans = ans % mod;sum1 = sum1 + tokens[i];sum1 = sum1 % mod;sum2 = sum2 + sum1;sum2 = sum2 % mod;}for(let j=0;j<n;j++){tot += ans;ans = ans - sum2;ans = ans % mod;tot = tot % mod;sum2 = sum2 - (n-j)*tokens[j];}console.log(tot)