zoukankan      html  css  js  c++  java
  • HUTXXXX 数学

    这题有个技巧就是保留前缀和后缀级,然后利用公式 a*b MOD c = ( a MOD c * b MOD c ) MOD c。

    代码如下:

    #include <cstdlib>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    #define MOD 1000000007
    using namespace std;
    
    int N;
    
    long long a[100005], l[100005], r[100005];
    
    int main()
    {
        while (scanf("%d", &N), N) {
            for (int i = 1; i <= N; ++i) {
                scanf("%lld", &a[i]);
            }
            l[0] = r[N+1] = 1;
            for (int i = 1; i <= N; ++i) {
                l[i] = (l[i-1]*a[i]) % MOD;
            }
            for (int i = N; i >= 1; --i) {
                r[i] = (r[i+1]*a[i]) % MOD;
            }
            for (int i = 1; i <= N; ++i) {
                printf(i == 1 ? "%lld" : " %lld", (l[i-1]*r[i+1]) % MOD);
            }
            puts("");
        }
        return 0;
    }
  • 相关阅读:
    使用Python往手机发送短信(基于twilio模块)
    春&风
    故乡
    非常完美
    风 记忆
    风誓
    MATLAB的循环结构
    你要的快乐
    夕颜
    MATLAB的基本元素
  • 原文地址:https://www.cnblogs.com/Lyush/p/2594364.html
Copyright © 2011-2022 走看看