蓝桥杯 二进制问题

简介: 蓝桥杯 二进制问题
#include<bits/stdc++.h>
using namespace std;
vector<int> a(70);
long long N, K;
vector<vector<vector<long long>>> dp(70, vector<vector<long long>>(70, vector<long long>(2, -1)));
long long dfs(int pos, long long count, int num, int limit)
{
    if (pos == -1)
    {
        return count == K;
    }
    if (!limit && dp[pos][count][num] != -1)
    {
        return dp[pos][count][num];
    }
    int upper = limit ? a[pos] : 1;
    long long res = 0;
    for (int i = 0; i <= upper; i++)
    {
        res += dfs(pos - 1, count + (i == 1), i, limit && i == upper);
    }
    if (!limit)
    {
        dp[pos][count][num] = res;
    }
    return res;
}
long long solve(long long x)
{
    int pos = 0;
    while (x)
    {
        a[pos++] = x & 1;
        x >>= 1;
    }
    return dfs(pos - 1, 0, 0, 1);
}
int main()
{
    cin >> N >> K;
    cout << solve(N);
    return 0;
}
目录
相关文章
|
JSON 自然语言处理 前端开发
用D3制作一张有翻页特效的手撕日历(只需100行代码)
在D3中用十分简单的代码就可以实现丰富的动画,下面来看一下手撕日历的动画效果吧
435 1
用D3制作一张有翻页特效的手撕日历(只需100行代码)
|
BI
专业认证!阿里云Quick BI入选Gartner®魔力象限
专业认证!阿里云Quick BI入选Gartner®魔力象限
386 1
|
分布式计算 C语言 Python
基于Python实现MapReduce
一、什么是MapReduce 首先,将这个单词分解为Map、Reduce。 • Map阶段:在这个阶段,输入数据集被分割成小块,并由多个Map任务处理。每个Map任务将输入数据映射为一系列(key, value)对,并生成中间结果。 • Reduce阶段:在这个阶段,中间结果被重新分组和排序,以便相同key的中间结果被传递到同一个Reduce任务。每个Reduce任务将具有相同key的中间结果合并、计算,并生成最终的输出。
|
存储 JavaScript 前端开发
Node 中的 AsyncLocalStorage 的前世今生和未来(一)
作者系统详实的介绍了什么是AsyncLocalStorage、如何使用、Node 是如何实现的 AsyncHook等。不论你是0基础还是对此API有些了解的读者都比较适合阅读此文。(文末有活动)
|
新零售 运维 Prometheus
带你读《云原生架构白皮书2022新版》——加速 SaaS 规模化演进,餐道基于 K8s 的云上创新底座(下)
带你读《云原生架构白皮书2022新版》——加速 SaaS 规模化演进,餐道基于 K8s 的云上创新底座(下)
887 101
|
机器学习/深度学习 人工智能 自然语言处理
MaskFormer:将语义分割和实例分割作为同一任务进行训练
目标检测和实例分割是计算机视觉的基本任务,在从自动驾驶到医学成像的无数应用中发挥着关键作用。目标检测的传统方法中通常利用边界框技术进行对象定位,然后利用逐像素分类为这些本地化实例分配类。但是当处理同一类的重叠对象时,或者在每个图像的对象数量不同的情况下,这些方法通常会出现问题。
5012 0
|
XML 网络协议 前端开发
Android国标接入终端实现GB28181实时位置(MobilePosition)上报
在实现本文提到的Android平台国标GB28181接入终端的实时位置上报之前,之前已经完成了Android终端GB28181常规功能接入,采集到实时音视频数据,编码PS打包后,按需传到GB28281服务平台,媒体流支持最新GB28181-2016的UDP和TCP被动模式,参数配置,支持注册有效期、心跳间隔、心跳间隔次数、TCP/UDP信令设置,支持RTP Sender IP地址类型、RTP Socket本地端口、SS-R-C、RTP socket 发送Buffer大小、RTP时间戳时钟频率设置,支持注册成功、注册超时、INVITE、ACK、BYE状态回调等。
290 0
|
机器学习/深度学习 人工智能 算法
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测
1143 0
LabVIEW快速实现OpenCV DNN(YunNet)的人脸检测(含源码)
|
运维 监控 安全
阿里云扎根江苏:已服务本地65%以上国家级“专精特新”企业
阿里云扎根江苏:已服务本地65%以上国家级“专精特新”企业
934 0