米哈游p3;
不知道错哪了,要么双循超时20%,要么答案错误20%
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static final int mod = (int) (1e9) + 7;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine();
long a[] = Arrays.stream(in.nextLine().split(" ")).mapToLong(Long::parseLong).toArray();
long res = 0;
long right = 0;
long sum = 0;
for (int i = 1; i < n; i++) {
right += (i * a[i])%mod;
sum += a[i];
}
sum%=mod;
for (int i = 0; i + 1 < n; i++) {
// if (a[i] == 0) {
// continue;
// }
// for(int j=i+1;j // res+=(j-i)*a[i]*a[j];
// res%=mod;
// }
res += (a[i]*right) % mod;
right-=sum;
sum-=a[i+1];
res %= mod;
}
System.out.println(res);
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static final int mod = (int) (1e9) + 7;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
in.nextLine();
long a[] = Arrays.stream(in.nextLine().split(" ")).mapToLong(Long::parseLong).toArray();
long res = 0;
long right = 0;
long sum = 0;
for (int i = 1; i < n; i++) {
right += (i * a[i])%mod;
sum += a[i];
}
sum%=mod;
for (int i = 0; i + 1 < n; i++) {
// if (a[i] == 0) {
// continue;
// }
// for(int j=i+1;j
// res%=mod;
// }
res += (a[i]*right) % mod;
right-=sum;
sum-=a[i+1];
res %= mod;
}
System.out.println(res);
}
}
全部评论
我也是双循环超时
,也是只过20
插眼,我也是同样的错误,不知道为什么,感觉逻辑没啥问题
我也同样的错误
我一直在想是不是有些特殊情况没想到还是什么
可以单循环把之前的和记下来
但是不知道哪里搞错了只有5%
反正我每一步都进行取余 就过了
我也是![](https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763930/8B36D115CE5468E380708713273FEF43)
我还是不知道后缀和有什么问题
相关推荐
![](https://static.nowcoder.com/fe/file/oss/1715049343797JOCFB.png)
点赞 评论 收藏
分享
2024-12-22 18:30
沈阳大学 工艺/制程工程师 点赞 评论 收藏
分享
01-14 20:42
南昌航空大学科技学院 前端工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享