文章目录

题解 CF1811E Living Sequence

由 hycqwq 发布

活着的序列(?

所以说为什么 CF 的题会牵扯到日语啊喂!

思路

去掉了数码 $4$,我们只剩下了 $9$ 个数码即 $0 \sim 3$ 与 $5 \sim 9$。容易想到题目中的序列就是九进制下的正整数表,只不过把大于等于 $4$ 的数码都加了个 $1$。

于是我们也可以这么做。

代码

对不起,但是这个火车头,它……

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <string>
#include <cstring>
#include <cctype>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <map>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
#define elif else if

int t;
ll n;

ll slv(ll x)
{
    ll ans = 0, s10 = 1;
    while (x > 0)
    {
        ll tmp = x % 9;
        if (tmp >= 4)
            tmp++;
        ans += tmp * s10;
        x /= 9, s10 *= 10;
    }
    return ans;
}

int main()
{
    cin >> t;
    for (int i = 1; i <= t; i++)
    {
        cin >> n;
        cout << slv(n) << endl;
    }
    return 0;
}

暂无评论

发表评论