90pts求调,好难啊
查看原帖
90pts求调,好难啊
595684
AceTaffy812楼主2024/12/15 22:20
#include <bits/stdc++.h>

#define LL long long
#define ULL unsigned long long
#define RI register int
#define MOD 998244353
using namespace std;
ULL ans = 0, n = 0, temp = 0;

int main()
{
    scanf("%lld", &n);
    if (n == 1)
    {
        ans = 1;
    }
    else if (n == 2)
    {
        ans = 3;
    }
    else
    {
        n -= 2;
        ULL num = 2;
        ans = 3;
        for (ULL i = 3; n > 0; ++i)
        {
            if (n >= num)
            {
                ans = (ans + (num * i) % MOD) % MOD;
                n -= num;
                num *= 2;
            }
            else
            {
                ans = (ans + (n * i) % MOD) % MOD;
                n = 0;
            }
        }
    }
    printf("%lld\n", ans);
    return 0;
}

2024/12/15 22:20
加载中...