`
Simone_chou
  • 浏览: 195691 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

Stringsobits(DP)

 
阅读更多
Stringsobits
Kim Schrijvers

Consider an ordered set S of strings of N (1 <= N <= 31) bits. Bits, of course, are either 0 or 1.

This set of strings is interesting because it is ordered and contains all possible strings of length N that have L (1 <= L <= N) or fewer bits that are `1'.

Your task is to read a number I (1 <= I <= sizeof(S)) from the input and print the Ith element of the ordered set for N bits with no more than L bits that are `1'.

PROGRAM NAME: kimbits

INPUT FORMAT

A single line with three space separated integers: N, L, and I.

SAMPLE INPUT (file kimbits.in)

5 3 19

OUTPUT FORMAT

A single line containing the integer that represents the Ith element from the order set, as described.

SAMPLE OUTPUT (file kimbits.out)

10011

 

     题意:

     给出 N(1 ~ 31),L(1 ~ N),I,代表有一个 N 长度的 01 字符串,要求输出第 I 个满足 N 长度,其中里面 1 的个数不大于 L 的 01 字符串。

   

     思路:

     DP。设 dp [ i ] [ j ] 代表 i 长度时候,1的个数不大于 j 时候的字符串方法种数。所以:

     dp [ i ] [ j ] = dp [ i - 1 ] [ j ] + dp [ i - 1 ] [ j - 1 ] 。最后根据 dp [ i ] [ j ] 找出这个字符串,如果从右自左的第 K 位是1的话,必然满足 dp [ k - 1 ] [ j ] < I <= dp [ k ] [ j ],所以不断判断是否 dp [ k - 1 ] [ j ] 是否大于 I 即可,如果满足,则 I -= dp [ k - 1 ] [ j ] ,且 --j。

 

     AC:

/*
ID:sum-g1
LANG:C++
PROG:kimbits
*/

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

using namespace std;

typedef long long ll;

ll dp[50][50];

int main() {

    freopen("kimbits.in", "r", stdin);
    freopen("kimbits.out", "w", stdout);

    ll len, num, ans;
    scanf("%lld%lld%lld", &len, &num, &ans);

    for (ll i = 0; i <= len; ++i) {
        dp[i][0] = 1;
        dp[0][i] = 1;
    }

    for (ll i = 1; i <= len; ++i) {
        for (ll j = 1; j <= num; ++j) {
            dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];
        }
    }

    for (ll i = len; i >= 1; --i) {
        if (dp[i - 1][num] < ans) {
            ans -= dp[i - 1][num];
            --num;
            printf("1");
        } else printf("0");
    }

    printf("\n");

    return 0;
}

 

 

 

分享到:
评论

相关推荐

    DP-DP-Koppler_Rel3_www.44dpdp.com_www.44dpdp.con_EC1-DEB-DPM_GSD

    标题"DP-DP-Koppler_Rel3_www.44dpdp.com_www.44dpdp.con_EC1-DEB-DPM_GSD"中提到的"DP-DP-Koppler"可能指的是一个特定的软件或系统开发项目,其中"DP"可能是项目代号或者代表“Data Processing”的缩写,而"Koppler...

    DP1.4标准协议_VESAProposedDisplayPort(DP)Standard.7z

    DisplayPort(DP)1.4标准是视频电子标准协会(VESA)发布的一种高级数字接口规范,用于在显示设备和视频源之间传输未压缩的音频和视频数据。DP1.4标准是DP接口的一个重要升级,它在DP1.3的基础上引入了多项技术创新...

    西门子DP耦合器GDS文件

    西门子DP耦合器(DP-DP Koppler)是西门子S7-300和S7-400系列PLC系统中的一个重要组件,用于实现PROFIBUS DP现场总线网络中的主站与主站或者主站与从站之间的通信连接。GDS(Generic Device Services)文件则是这种...

    DP1.4标准——VESA Proposed DisplayPort (DP) Standard.pdf

    DP1.4标准——VESA Proposed DisplayPort (DP) Standard 标题:DP1.4标准——VESA Proposed DisplayPort (DP) Standard 描述:该文档定义了一个灵活的系统和设备,能够在Source设备和Sink设备之间通过数字通信接口...

    DP1.4标准——VESA Proposed DisplayPort (DP) Standard

    ### DP1.4标准——VESA Proposed DisplayPort (DP) Standard #### 概述 DisplayPort(简称DP)是由视频电子标准协会(VESA)制定的一种数字显示接口标准,旨在提供一种灵活、高效的数字通信接口,用于源设备...

    区间DP概率DP树形DP插头DP

    区间DP概率DP树形DP插头DP,每种DP一道典型例题,有助于初学者

    DP接口介绍+原理图与PCB layout资料总结汇总

    DisplayPort (DP) 接口是一种数字视频接口技术,由Video Electronics Standards Association (VESA) 制定,用于连接显示器和其他设备,如显卡、电视、笔记本电脑等。DP接口以其高带宽、多通道传输和对音频的支持而受...

    得宝 迪普乐DP-F850 DP-F650 DP-F620 DP-F550 DP-F520 制版印刷一体机 维修手册

    **内容概览:** 本章节详细介绍了DP-F系列(包括DP-F850、DP-F650、DP-F620、DP-F550、DP-F520)的具体规格参数、外观尺寸以及各个组件的功能。 1. **规格参数:** 包括但不限于工作电压、功率消耗、打印速度、分辨率...

    西门子DP组建动画演示

    西门子DP(Decentralized Periphery)是西门子S7系列PLC中的一个分布式I/O系统,它是SIMATIC自动化系统的一个重要组成部分。DP系统允许用户将输入/输出模块分布在网络的不同节点上,以适应复杂的工业现场环境,提高...

    S7-1500 如何使用 DP 通信模块作为 DP 从站连接到 S7-300 CPU(STEP7).pdf

    S7-1500 如何使用 DP 通信模块作为 DP 从站连接到 S7-300 CPU(STEP7) Profibus DP 通信是一种广泛应用于工业自动化领域的现场总线技术。它规定了串行现场总线系统的技术和功能特性,通过这个系统,从底层...

    CPU315-2DP用集成DP端口做第三方DP从站的组态和编程

    CPU315-2DP 用集成 DP 端口做第三方 DP 从站的组态和编程 CPU315-2DP 是一种工业控制器,具有集成的 DP 端口,可以组态为 DP 主站或 DP 从站。本文将介绍如何使用 CPU315-2DP 的集成 DP 端口做第三方 DP 从站的组态...

    android dx和dp 像素和dp之间转换的工具类

    `dx`和`dp`(Density-independent Pixels)是Android系统中处理像素单位的关键概念,它们对于创建跨设备一致的用户体验至关重要。本文将详细探讨`dx`、`dp`以及如何在像素和`dp`之间进行转换。 `dp`,全称为密度...

    FPGA板载DP 1.4 TX与RX原理图

    根据提供的FPGA板载DP 1.4 TX与RX原理图的信息,我们可以深入解析其中涉及的关键技术点。本文将从接口标准、FPGA在显示接口中的应用、DP 1.4标准特性、信号线功能以及电路设计细节等方面进行详细介绍。 ### 1. DP ...

    基于DP屈服准则的西原本构模型及其运用_沈才华_umatdp_dp-umat_umat文章_dp模型umat_UMAT

    《基于DP屈服准则的西原本构模型及其运用》是由沈才华撰写的一篇文章,主要探讨了在材料力学领域中如何利用DP屈服准则构建西原(Simo-Hughes)本构模型,并介绍了如何在有限元分析软件中通过UMAT子程序实现这一模型...

    S7-1500 如何使用 DP 通信模块作为 DP 主站或从站连接到其它系列CPU

    在工业自动化领域,西门子S7-1500 PLC(可编程逻辑控制器)是广泛应用的控制器之一,它支持多种通信协议,其中包括DP(Profibus-DP)通信。DP通信模块如CP1542-5使得S7-1500能够与其他设备如S7-300进行高速数据交换...

    A2DP协议中文精简版

    A2DP协议中文精简版 A2DP(Advanced Audio Distribution Profile)是一种蓝牙应用层协议,主要用于传输高保真立体声数据流。该协议栈基于蓝牙1.1规范的应用框架基础上,并且利用了嵌入式蓝牙开发平台,实现了基本的...

    DP83640使用要点总结

    ### DP83640使用要点深度解析 #### 前言 DP83640作为一款集成1588功能的Ethernet PHY芯片,在PTP(Precision Time Protocol)和POE(Power over Ethernet)设备中扮演着核心角色。本文旨在深入探讨DP83640的关键...

    S7-1200 和 S7-300 PROFIBUS DP主从通信大全

    1. 同一项目中S7-1200 与 S7-300 集成 DP 口之间 DP 主从通信,S7-1200 通过CM1243-5作为 DP 主站,S7-300 集成 DP 口作为 DP 从站; 2. 不同项目中S7-1200 与 S7-300 集成 DP 口之间 DP 主从通信,S7-1200 通过CM...

    Android 蓝牙 A2dp 听歌卡音?audio数据到a2dp通道流程解析----A2dp流控原理(Acl Flow Con

    在Android系统中,蓝牙A2DP(Advanced Audio Distribution Profile)用于无线传输高质量音频,但在实际使用过程中,用户可能会遇到听歌卡音的问题。这可能是由于多种因素引起的,包括硬件问题、软件兼容性、蓝牙RF...

    DP 1.4 Spec VESA Proposed DisplayPort

    DisplayPort (DP) 1.4 规范是由视频电子标准协会(VESA)制定的,旨在提供一种灵活的系统和设备,用于在源设备和接收设备之间通过数字通信接口传输视频、音频和其他数据。该标准不仅适用于内部连接,如个人电脑或...

Global site tag (gtag.js) - Google Analytics