题解 | #乘积#

乘积

https://ac.nowcoder.com/acm/problem/53630

异或规则:只有同时出现1才结果为1,其他的全为0。
即:1&1=1 1&0=0 0&0=0
i=1nj=1nAi\prod_{i=1}^n\prod_{j=1}^nA_i&AjA_j
式中AiA_i&AjA_j的结果是Amin(i,j)A_{min(i,j)}
所以我们根据二进制的规则进行暴力乘法即可
AC代码

#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
inline void IOS()
{
    ios::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
}
void dilingtian()
{
    long long n;
    cin >> n;
    long long ans = 1;
    for (int i = 1; i <= n; i++)
        for (int j = 1; j <= n; j++)
        {
            int minn = min(i, j);
            long long p = 1, sum = 0;
            while (minn--)
            {
                sum = (sum % mod + p % mod) % mod;
                p = p * 2 % mod;
            }
            ans = ans * sum % mod;
        }
    cout << ans << endl;
}
int main(void)
{
    IOS();
    int t;
    cin >> t;
    while (t--)
        dilingtian();
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
冰皮月饼_FLORRIEEE:你是准备投产品嘛?可以重新整理一下实习的bulletpoint,侧重描述你的工作所带来的结果收益,不要只写泛泛的内容(比如改写通过xx数据分析,提升xx),产品的价值并不在处理和分析数据的过程
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务