zoukankan      html  css  js  c++  java
  • loj6485. LJJ 学二项式定理

    题意

    给出(n, s, a_0, a_1, a_2, a_3),求

    [sum_{i = 0} ^ n inom{n}{i} s ^ i a_{i mod 4} ]

    (998244353)取模的值。

    题解

    本来像强行用xiaomange的方法艹过去,but failed。
    大概猜到和原根有关,但是思考也只是停留在特殊的情况下,没有进行更有效的思考。
    正解是单位根反演。
    大概就是在推式子的过程中发现突破口的

    [egin{aligned} origin & = sum_{k = 0} ^ 3 a_k sum_{i = 0} ^ n [4 | i + 4 - k] inom{n}{i} s ^ i \ end{aligned} ]

    注意到在对(998244353)取模下有4次单位根(omega_4),又由于有恒等式

    [[n | m] = frac{1}{n} sum_{i = 0} ^ {n - 1} omega_n ^ {im} ]

    [egin{aligned} origin & = sum_{k = 0} ^ 3 a_k sum_{i = 0} ^ n inom{n}{i} s ^ i sum_{j = 0} ^ 3 omega_4 ^ {j(i + 4 - k)} \ & = sum_{k = 0} ^ 3 a_k sum_{j = 0} ^ 3 sum_{i = 0} ^ n inom{n}{i} s ^ i omega_4 ^ {j(i + 4 - k)} \ & = sum_{k = 0} ^ 3 a_k sum_{j = 0} ^ 3 omega_4 ^ {j(4 - k)} sum_{i = 0} ^ n inom{n}{i} s ^ i omega_4 ^ {ji} \ & = sum_{k = 0} ^ 3 a_k sum_{j = 0} ^ 3 omega_4 ^ {j(4 - k)} (s omega_4 ^ j) ^ n \ end{aligned} ]

    再直接做即可。

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int mod = 998244353, g = 3;
    ll power (ll a, ll b) {
    	ll ret = 1;
    	for ( ; b; b >>= 1, a = a * a % mod) {
    		if (b & 1) {
    			ret = ret * a % mod;
    		}
    	}
    	return ret;
    }
    int T; ll w, n, s, a, p, q, ans;
    int main () {
    	w = power(g, (mod - 1) / 4);
    	for (scanf("%d", &T); T; --T) {
    		scanf("%lld%lld", &n, &s), ans = 0;
            for (int i = 0; i < 4; ++i) {
            	scanf("%lld", &a), p = s, q = 1;
            	for (int j = 0; j < 4; ++j) {
            		ans += a * power(q, 4 - i) % mod * power(p + 1, n);
            		ans %= mod;
            		p = p * w % mod;
            		q = q * w % mod;
            	}
            }
            ans = ans * power(4, mod - 2) % mod;
            printf("%lld
    ", ans);
        }
        return 0;
    }
    
  • 相关阅读:
    基于动态IP的Internet视频监控解决方案(作者:吴晓晖)
    Avid
    Silverlight 自定义控件的继承问题
    VOD三种VOD视频点播技术的简介和比较
    服务器主流存储:SAS存储知识问答
    获取oracle系统数据的sql
    C#去除字符串空格的几种方法
    利用Windows Media实现IP组播
    两种宽带接入方式HFC与ADSL的比较
    C#中用XMLDocument写文件时,去掉XMLNS属性
  • 原文地址:https://www.cnblogs.com/psimonw/p/11240341.html
Copyright © 2011-2022 走看看