• Acdream Multiplication 基础题


     
    看了公式之后k的值来源是i或者是j,那么枚举 i = k 的时候满足(j < i)同理 j = k 的时候满足(i < j) 最后在加上i,j都是k。求一个前缀和。注意处理溢出。
     
    代码如下:
    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #define MOD 1000000007
    using namespace std;
    
    int N;
    
    long long sa[100005], sb[100005];
    
    int cal(int x) {
        return ((sa[x-1] % MOD) * (sb[x] - sb[x-1]) % MOD + (sb[x-1] % MOD) * (sa[x] - sa[x-1]) % MOD + (sa[x] - sa[x-1]) * (sb[x] - sb[x-1]) % MOD) % MOD;
    }
    
    int main() {
        while (scanf("%d", &N) == 1) {
            int c;
            for (int i = 1; i <= N; ++i) {
                scanf("%d", &c);
                sa[i] = sa[i-1] + c;
            }
            for (int i = 1; i <= N; ++i) {
                scanf("%d", &c);
                sb[i] = sb[i-1] + c;
            }
            for (int i = 1; i <= N; ++i) {
                printf(i == 1 ? "%d" : " %d", cal(i));
            }
            puts("");
        }
        return 0;    
    }
     
  • 相关阅读:
    uwsgi
    Angular.js中处理页面闪烁的方法详解
    Mongo db change datadir
    day 007作业
    day 007总结
    day 006作业
    day006 总结
    day 005作业
    day 005总结
    day 004作业
  • 原文地址:https://www.cnblogs.com/Lyush/p/2775884.html
Copyright © 2020-2023  润新知