CF1091D New Year and the Permutation Concatenation


思路:

找规律。

实现:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 
 5 const ll MOD = 998244353;
 6 const int N = 1000000;
 7 
 8 ll a[N + 5], f[N + 5];
 9 
10 ll pow(ll x, ll n)
11 {
12     ll res = 1;
13     while (n)
14     {
15         if (n & 1) res = res * x % MOD;
16         x = x * x % MOD;
17         n >>= 1;
18     }
19     return res;
20 }
21 
22 ll inv(ll x)
23 {
24     return pow(x, MOD - 2);
25 }
26 
27 int main()
28 {
29     ll n;
30     f[0] = 1;
31     for (int i = 1; i <= N; i++) f[i] = f[i - 1] * (ll)i % MOD;
32     a[N] = inv(f[N]);
33     for (int i = N - 1; i >= 0; i--) a[i] = a[i + 1] * (i + 1) % MOD;
34     while (cin >> n)
35     {
36         if (n <= 2) { cout << n << endl; continue; }
37         ll ans = (f[n] * n - f[n] * inv(2) * 3) % MOD;
38         for (int i = 3; i <= n - 1; i++) ans = (ans - f[n] * a[i] % MOD) % MOD;
39         cout << (ans + MOD) % MOD << endl;
40     }
41     return 0;
42 }

优质内容筛选与推荐>>
1、手动修复输入表时的发现---对于IID输入表和IAT和INT对应关系及程序载入DLL
2、杨森翔的书法-22
3、文字标签和注释标签
4、NopCommerce支持多皮肤模板
5、洛谷 P2799 国王的魔镜


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号