SOJ-4310 Sum of product

原创 2013年12月03日 19:27:06

这题很容易想到用三层循环,但很明显超时,所以要优化。

s1=a[n](a[n-1]*(a[n-2]+........a[1])+a[n-2]*(a[n-3]+......a[1])+.......a[2]*a[1])

s2=a[n-2](a[n-2]*(a[n-3]+....a[1])+a[n-3]*(a[n-4]+.......a[1])+.......a[2]*a[1])

.............

sn=a[3]*(a[2]*a[1]);

所以这就有规律了,直接优化到O(n)的算法。

#include<iostream>
#include<cstdio>
#include<cstring>
#define Mod 1000000007
typedef long long LL;
using namespace std ;
const int N=1000005;
LL a[N],sum[N],Mu[N];

int main()
{
	int n;
	sum[0]=0;
	Mu[2]=0;
    while(scanf("%d",&n)!=EOF){
		for(int i=1;i<=n;i++){
			scanf("%lld",&a[i]);
			sum[i]=(sum[i-1]+a[i])%Mod;
			if(i>2) Mu[i]=(Mu[i-1]+(a[i-1]*sum[i-2]))%Mod;
		}
		LL ans=0;
		for(int i=n;i>2;i--){
			ans+=(a[i]*Mu[i])%Mod;
		}
		printf("%lld\n",ans*6%Mod);
    }
 	return 0 ;
}


相关文章推荐

【Smart OJ P2485】Sum of product 简单数学

描述 Descript.对于A1,A2,…..,AN,求 的值。输入 Input第1 行,1 个整数N。 第2 行,N 个整数A1,A2,…..,AN。输出 Output1 个整数,表示所求的...
  • LOI_DQS
  • LOI_DQS
  • 2015年10月28日 19:23
  • 510

371. Sum of Two Integers\318. Maximum Product of Word Lengths\208. Implement Trie\201.Bitwise AND

Sum of Two Integers DESCRIPTION IMPLEMENTATION Maximum Product of Word Lengths DESCRIPTION IMPLEMENT...

Factor Graphs and the Sum-Product Algorithm

  • 2016年03月08日 11:33
  • 459KB
  • 下载

soj1171 The Game of Efil

Constraints Time Limit: 2 secs, Memory Limit: 64 MB Description Almost anyone who ...

Calculating The Sum of Its Parts

  • 2011年12月03日 10:50
  • 2KB
  • 下载

CodeForces 631E Product Sum(斜率优化DP+二分|三分) ★

题意:给出n个数,现在可以移动一个数的位置,现在要使和sigma(ai*i)最大,询问这个最大和。 思路:将一个数向左移动和向右移动是一样的,现在考虑向左移动。 先预处理出前缀和,将一个数向左移动后,...
  • Ezereal
  • Ezereal
  • 2016年09月07日 16:21
  • 670

CodeForces 631E Product Sum(斜率优化DP+二分|三分)

题意:给出n个数,现在可以移动一个数的位置,现在要使和sigma(ai*i)最大,询问这个最大和。 思路:将一个数向左移动和向右移动是一样的,现在考虑向左移动。 先预处理出前缀和,将一个数向左移动...

Sum vs Product(ACdream) —— dfs

I - Sum vs Product Time Limit: 4000/2000MS (Java/Others)     Memory Limit: 128000/64000KB (Java/O...

ACdream 1431 Sum vs Product

题目链接:http://115.28.76.232/problem?pid=1431 Sum vs Product Time Limit: 4000/2000MS (Java/...

欧拉工程第32题:Pandigital product sum

题目链接:https://projecteuler.net/problem=32 题意:a*b=c 如果a、b、c三个数包含了1-9九个数字,则求出所有的C的乘积(C不能有重复的 ),如:39 × ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SOJ-4310 Sum of product
举报原因:
原因补充:

(最多只允许输入30个字)