zoukankan      html  css  js  c++  java
  • E. Modular Stability. (数学同余式)

    题目链接:https://codeforces.com/contest/1359/problem/E

    题目大意:

    给你 n 和 k,构造一个长度为 k 的数组,然后数组中的每个元素  1 <= a[i] <= n ,任何一个 (x % a[1]) % a[2]... 取模的顺序可以随意调换,但是结果并没有改变的这样的 a 的数组的个数

    想法:

    #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    
    #include <algorithm>
    #include <string>
    #include <cstring>
    #include <vector>
    #include <map>
    #include <stack>
    #include <set>
    #include <queue>
    #include <cmath>
    #include <cstdio>
    #include <iomanip>
    #include <ctime>
    #include <bitset>
    #include <cmath>
    #include <sstream>
    #include <iostream>
    
    #define ll long long
    #define ls nod<<1
    #define rs (nod<<1)+1
    #define pii pair<int,int>
    #define mp make_pair
    #define pb push_back
    #define INF 0x3f3f3f3f3f3f3f3f
    #define max(a, b) (a>b?a:b)
    #define min(a, b) (a<b?a:b)
    
    
    const double eps = 1e-10;
    const int maxn = 5e5 + 10;
    const int MOD = 998244353;
    
    int sgn(double a) { return a < -eps ? -1 : a < eps ? 0 : 1; }
    
    using namespace std;
    
    ll da[maxn];//G++ long long
    void init()
    {
        int i;
        da[0]=1;
        da[1]=1;
        for(i=2;i<maxn;i++)
            da[i]=i*da[i-1]%MOD;
    }
    ll quickmod(ll a,ll b)
    {
        ll ans=1;
        while(b)
        {
            if(b&1)
            {
                ans=(ans*a)%MOD;
                b--;
            }
            b/=2;
            a=((a%MOD)*(a%MOD))%MOD;
        }
        return ans;
    }
    ll C(ll a, ll b)
    {
        return (da[a]%MOD)*(quickmod(da[b]*da[a-b]%MOD,MOD-2))%MOD;
    }
    
    int main() {
        ios::sync_with_stdio(false);
        init();
        ll n,k;
        cin >> n >> k;
        ll ans = 0;
        for (int i = 1;i <= n;i++) {
            if (n / i < k)
                continue;
            ans = (ans + C(n/i-1,k-1)) % MOD;
        }
        cout << ans << endl;
        return 0;
    }
     
  • 相关阅读:
    【C++注意事项】1 数据类型及类型转换
    【万里征程——Windows App开发】动态磁贴
    背包问题
    Fence Repair
    Saruman's Army
    字典序最小问题——Best Cow Line
    区间调度问题
    硬币问题
    数据库查询优化的一些总结
    关于减少BUG的思考
  • 原文地址:https://www.cnblogs.com/-Ackerman/p/13188886.html
Copyright © 2011-2022 走看看