给定n个正整数的序列,我们需要计算其总和可被k整除的连续子序列.
约束:N高达10 ^ 6,每个元素高达10 ^ 9,K高达100
示例:设N = 5且K = 3,阵列为1 2 3 4 1
这里的答案是4
说明:存在4个子序列,其总和可以被3整除,它们是
3
1 2
1 2 3
2 3 4
Run Code Online (Sandbox Code Playgroud)
我的尝试:
long long int count=0;
for(int i=0;i<n;i++){
long long int sum=0;
for(int j=i;j<n;j++)
{
sum=sum+arr[j];
if(sum%k==0)
{
count++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但显然它的方法很差.他们可以更好地解决这个问题吗?请帮忙.
完整问题:https://www.hackerrank.com/contests/w6/challenges/consecutive-subsequences
我有一个代码,它接受输入 T 并后跟 T 行。我想将精度设置为小数点后 12 位。如何提高 Haskell 的精度?
代码:
f i=(-1)**i/(2*i+1)
g j=show$sum$map f[0..j-1]
p(_:l)=map(g.read)l
main=interact$unlines.p.lines
Run Code Online (Sandbox Code Playgroud)
就像如果输入是:
1
10
Run Code Online (Sandbox Code Playgroud)
然后输出是 0.7604599047323508,但我只想要 0.760459904732。