zoukankan      html  css  js  c++  java
  • 前缀和预处理

        地址:http://acm.csust.edu.cn/contest/78/problem/A

    Input

     

    第一行包含一个正整数n(1leq nleq 10^5)n(1n105)。

    第二行包含nn个整数a_i(1leq a_ileq 100)ai(1ai100)。

    第三行包含nn个整数b_i(1leq b_ileq 100)bi(1bi100)。

    Output

     

    输出DescriptionDescription

    3
    1 2 3
    1 2 3


    25
       题意:根据所给代码。比如 1 2 3
                   4 5 6
          就是1*4+1*5+1*6+2*5+2*6+3*6
      解析:上面这个就是1*(4+5+6)+2*(5+6)+3*6,括号里就可以使用前缀和来预处理一下,记得倒着处理。
    #include<iostream>
    #include<vector>
    #include<set>
    #include<cmath>
    using namespace std;    
    typedef long long ll;
    const int maxn=1e5+10;
    int a[maxn];
    int b[maxn],c[maxn];
    int main()
    {
        int n;
        cin>>n;
        for(int i=0;i<n;i++)
            cin>>a[i];
        for(int i=0;i<n;i++)
            cin>>b[i];
        for(int i=n;i>=0;i--)
            b[i]=b[i+1]+b[i];
        ll sum=0;
        for(int i=0;i<n;i++)
            sum+=a[i]*b[i];
        cout<<sum<<endl;
    }
  • 相关阅读:
    JS(原生语法)_实现酷酷的动态简历
    Linux外在设备的使用
    查看系统内存信息
    查看CPU信息
    查看系统PCI设备
    配置网络
    Linux分区
    Observer
    Singleton
    Open closed principle
  • 原文地址:https://www.cnblogs.com/liyexin/p/12507889.html
Copyright © 2011-2022 走看看