Quasi Binary

Quasi Binary

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

Quasi Binary

题目大意

就是给你一个数 ,然后你要把 表示成看上去像二进制的十进制数的和,要求这样的数越少越好

分析

对于一个十进制数 ,可以表示为
那么这个可以作为其中一些不是最优的解,那么我们考虑优化一下上面的这个东西
根据乘法分配律,对于前面那个东西相同的部分是可以合并的,那么就可以变成
那么更显然的是啥呢,就是所有的 都是一定不同的,所以可以直接把小的部分合并到大的部分中,其中这并不会产生进位,就是说最后不会影响答案的正确性,那么最后的答案就是
那么就是可以枚举每一位,令第 的大小为 ,那么就可以随机找 个将要输出的值加上 即可。

Code

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;

typedef long long ll;
const int maxn = 1e5 + 10;
const int mod = 1e9 + 7;
const int inf = 0x3f3f3f3f;

inline int __read()
{
    int x(0), t(1);
    char o (getchar());
    while (o < '0' || o > '9') {
        if (o == '-') t = -1;
        o = getchar();
    }
    for (; o >= '0' && o <= '9'; o = getchar()) {
        x = (x << 1) + (x << 3) + (o ^ 48);
    }
    return x * t;
}

int ans[10], len;

int main()
{
    int x = __read();
    for (int i = 1; i <= x; i *= 10) {
        int temp = x / i % 10;
        len = max(len, temp);
        for (int j = 1; j <= temp; ++j) ans[j] += i;
    }
    printf ("%d\n", len);
    for (int i = 1; i <= len; ++i) printf("%d\n", ans[i]);
    puts("");
}
有的没的 文章被收录于专栏

RT,有的没的

全部评论

相关推荐

挣K存W养DOG:玩小红书玩的,觉得自己很幽默😅
点赞 评论 收藏
分享
04-02 16:49
门头沟学院 Java
_bloodstream_:我也面了科大讯飞,主管面的时候听说急招人优先考虑能尽快实习的,我说忙毕设,后面就一直没消息了
点赞 评论 收藏
分享
已oc&nbsp;云智断更了好几天,也有一些话想说,继续更新一篇云智timeline&nbsp;4.18&nbsp;一面&nbsp;半个小时后约二面&nbsp;4.21二面&nbsp;当晚&nbsp;约hr面&nbsp;4.23hr面&nbsp;4.30&nbsp;发offer之前美团的二面挂了,进入人才库,后面又被捞起来面试,4.30号&nbsp;美团又一面,现在还没出一面结果感觉也不报什么希望,就算一面过了,还有二面,我经不起深入拷打,唉,真的,好难五一躺平了五天,吃吃玩玩睡睡~还要担心毕业,科研更是难,唉暑期可能就到此为止了,后面没有时间在这个上面了,要抓紧时间做科研,为了后面能出去实习。大厂,秋招再见!!!有一些感慨:4.1是我的第一次面试,美团,面试的时候紧张到浑身发...
daisy9542:我今晚也是美团一面,已经第六次了。我也面了其他的,没拿到 offer。但我想开了,要按照自己的节奏来,找暑期转正然后秋招大杀四方并不是唯一的出路,其实还有很多选择的,有 0 实习最后秋招拿 offer 了,也有不选择互联网去国企的外企的,考编的,创业的。现在的失败不代表以后的路都是黑暗的,只不过可能运气还没降临到头上。所以现在要做的,就是放平心态,提升自己,通过面试了解到自己的优点和不足,争取下次机会来了能好好抓住
点赞 评论 收藏
分享
评论
7
2
分享

创作者周榜

更多
牛客网
牛客企业服务