USACO 3.2.2 Stringsobits

【USACO题库】3.2.2 Stringsobits__01串 题目描述 考虑排好序的N(N 你会发现,这很有趣。因为他们是排列好的,而且包含所有可能的长度为N且含有1的个数小于等于L(L 你的任务是输出第I(1 INPUT FORMAT 共一行,用空格分开的三个整数N,L,I。 SAMPLE INPUT (file kimbits.in) 5  3  19 OUTPUT FORMAT 共一行,输出满足条件的第I大的二进制数。 阅读详情

主要思路是动态规划

f[i][j] 代表 长度为 i , '1' 的个数为 j 的方案数。

转移方程分加一个 1 和 加一个 0 两种情况 

即 f[i][j] = f[i-1][j] + f[i-1][j-1]

边界情况是 f[i][0] = 1, f[0][i] = 1

要注意在转移的时候 f[i][j] 若 j > i 则 f[i][j] = f[i][i];


然后是求出对应的串

考虑若最左边的‘1’是在第k位的 那么必然有 f[k][l] >= I 而 f[k-1][l] < I

那么其实只要降序找到第一个小于I的 就能确认1的位置

接下来就调整 I 和 l, 相当于求一个子问题。


注意要用long long

/*
PROG:kimbits
LANG:C++
*/

#include <cstdio>

using namespace std;

long long n, l, I;
long long f[32][32];

bool flag;
int main()
{
    freopen("kimbits.in", "r", stdin);
    freopen("kimbits.out", "w", stdout);
    scanf("%d%d%lld", &n, &l, &I);
    for (int i = 0;i <= n;++i) f[i][0] = f[0][i] = 1;
    for (int i = 1;i <= n;++i)
    for (int j = 1;j <= n;++j)
        f[i][j] = f[i-1][j] + f[i-1][j-1];

    flag = false;
    for (int i = n-1;i >= 0;--i)
    {
        if (f[i][l] < I)
        {
            printf("%d", 1);
            flag = true;
            I -= f[i][l];
            l--;
        }
        else printf("%d", 0);
    }
    printf("\n");
}


Dobot Magician机械臂二次开发指南:如何利用Python脚本和I/O接口实现自动化任务 本文详细介绍了Dobot Magician机械臂的二次开发方法,重点讲解如何通过Python脚本和I/O接口实现高级自动化任务。内容包括开发环境搭建、运动控制API解析、I/O接口应用以及典型场景实现,帮助开发者充分发挥Dobot Magician的潜力,适用于工业自动化、教育科研等领域。 阅读详情

相关推荐

计组头哥实验 实验三 MIPS寄存器实验

了解 MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim 组件的使用,并利用相关组件构建 MIPS 寄存器文件。

gdz0007的博客 1万+

USACO 3.2.2:Stringsobits

@qqiseeu 2014-04-01 20:24 USACO 3.2.2 : Stringsobits 问题描述 给定三个数N,L,I,要求找出所有长度为N且‘1’的个数不超过L的01字符串中的第I个(以字典序),例如N=5,L=3,I=19时,所求字符串为10011。数据范围为: 1≤N≤31,1≤L≤N,1≤I≤∑Li=0CiN。 问题解法 以F[i][j]表示“长度

University of Barking Doggies 642

在Modelsim中手动添加仿真库

缘由:在使用rom ip核的时候发现仿真需要altera_mf库的支持,而我的ModelSim没有这个库,所以想写一篇手动添加仿真库的文章方便自己以后使用:首先新建一个库,名字叫做altera_mf:然后编译对应的库文件:这里altera_mf.v文件是在quartus安装路径下quartus\eda\sim_lib文件夹下,点击编译后退出:最后在modelsim->example文件夹下可以找到编译好的库文件:

欢迎一起交流问题! 3402

[USACO Section 3.2] 01串 Stringsobits (动态规划)

题目链接 Solution 贼有意思的 DP, 也可以用组合数学做. \(f[i][j]\) 代表前 \(i\) 位,有 \(j\) 个 \(1\) 的方案数. 转移方程很简单 : \(f[i][j]=f[i-1][j]+f[i-1][j-1]\) 然后可以按位判断答案上是否为 \(1\) . 如何判断? 如果当前 \(f[i][L]\) 小于 \(I\) ,那么我们所要的方案一定 \(i\) ...

weixin_30652897的博客 207

物联网组网技术优缺点对比:蓝牙、LoRa、wifi、NB-IoT、ZigBee等

1.前言 最近对物联网产品自组网技术选型,找到合适的组网技术,让产品自行组网并完成数据的传输。 2.参数对比

谁念西风独自凉 4万+

HCLR-Net: 混合对比学习正则化与局部随机扰动用于水下图像增强

独特贡献在于开发了一种处理负样本的新策略,既保留了负样本的统计特性,又防止网络过度剖析这些样本中的特征信息。通过根据每个通道特征的重要性对模型进行加权,我们可以增强富含上下文信息的通道,从而获得更准确、更详细的特征表示。AHA 模块利用垂直方向上的 Avgpool 和水平方向上的 Maxpool 来捕捉远程依赖关系和准确的位置信息,从而有效确定不同方向上的特征退化。对比学习策略通常旨在最小化正样本之间的欧氏距离,使预测图像更接近理想图像,同时最大化负样本与预测图像之间的距离,使它们进一步远离非理想表征。

G-Howe的博客 1459

USACO3.2.2 Stringsobits (kimbits)

dp[j][k]表示长度为j的串中有不多与k个1的个数 所以dp[j][k] = dp[j][k-1]+c[j][k]. 边界:dp[j][0]=dp[0][j]=1 然后从n到1枚举k,每次输出所求串的从右到左第k位。 如果dp[k-1][l] 如果dp[k-1][l]>=I,则这一位一定填0,原因类似上面。 /* ID:shijiey1 PROB:kimbits LANG:C++

Shion的专栏 416

别再只用跳层连接了!手把手教你用DASI和MDCR模块提升红外小目标检测精度

本文详细介绍了如何利用DASI和MDCR模块提升红外小目标检测精度。通过分析传统跳层连接的缺陷,提出维度感知的特征选择性融合(DASI)和多尺度感受野精炼器(MDCR)的创新方案,显著提升小目标检测性能。实验证明,该方法在多个场景下AP@0.5提升达15.4%,特别适用于安防监控和遥感图像分析。

weixin_28715081的博客 224

USACO 3.2.2 stringsobits

      这道题是关于排列组合的基础题目,当然也就是动态规划。 /*ID: wangqia6TASK: kimbitsLANG: C++*/#include using namespace std;const long NMAX = 35;ifstream fin ("kimbits.in");ofstream fout ("kimbits

inc(Arthur's fighting) 563

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 519

手把手教你学simulink实例--基于Simulink的船舶动力定位系统建模与仿真

船舶动力定位系统(Dynamic Positioning System, DPS)是一种通过控制推进器来保持船舶在指定位置和航向的技术。它广泛应用于海上钻井平台、海洋调查船、起重船等需要精确位置控制的场景。DPS的核心任务是实时感知环境干扰(如风、浪、流),并通过闭环控制算法调整推进器输出,以抵消外界扰动并维持船舶的位置和姿态。本项目旨在基于MATLAB/Simulink平台,构建船舶动力定位系统的数学模型,并进行仿真分析,验证其性能和稳定性。

MHD0815的博客 1085

USACO Training 3.2.2 Stringsobits 01串 题解与分析

Stringsobits01串 描述 考虑排好序的N(N 他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L 你的任务是输出第i(1<=i<=长度为N的二进制数的个数)小的(注:题目这里表述不清,实际是,从最小的往大的数,数到第i个符合条件的,这个意思),长度为N,且1的位数的个数小于等于L的那个二进制数。 (例:100101中,N=6,含有

初学者 1632

图像标注神器:完全开源免费的多功能标注工具Labelme详解

Labelme是MIT开发的免费开源图像标注工具,支持多边形、矩形等多种标注类型,适用于目标检测、分割等计算机视觉任务。提供Windows可执行文件和Python安装两种方式,可输出JSON格式并转换为COCO等标准数据集。具有跨平台、功能全面、社区活跃等优势,能显著提升标注效率,是AI视觉项目的重要数据准备工具。

数字人生 529

题解P2727 [USACO3.2] 01串 Stringsobits

#二进制rank #dp与数学

Byte_4367的博客 770

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

USACO 3.2.3 Stringsobits 动态规划

Stringsobits Kim Schrijvers Consider an ordered set S of strings of N (1 This set of strings is interesting because it is ordered and contains all possible strings of length N that have L (1 You

183

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

usaco3.2.2 Stringsobits

一 原题 Stringsobits Kim Schrijvers Consider an ordered set S of strings of N (1 This set of strings is interesting because it is ordered and contains all possible strings of length N that have L

max_kibble的博客 362

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

USACO 3.2 Stringsobits

1 /* 2 PROG: kimbits 3 ID: jiafeim1 4 LANG: C++ 5 */ 6 #include <algorithm> 7 #include <iostream> 8 #include <fstream> 9 #include <string>10 using namespace std;11 12 s...

weixin_30273763的博客 90

USACO Section 3.2 Stringsobits(dp)

StringsobitsKim 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 ...

angtongyou1893的博客 212

USACO - 3.2.2 - Stringsobits

  原创文章转载请注明出处 摘要:动态规划  , 三星题目 一. 题目翻译 1. 描述:   考虑排好序的N(N&lt;=31)位二进制数。           你会发现,这很有趣。因为他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L&lt;=N)的数。           你的任务是输出第i(1&lt;=i&...

12312312341234 282

usaco 3.2.3 stringsobits

自己亲手写的一道题,感觉对思维还是很有帮助的,存一下代码。 /* ID:15230521 PROB:kimbits LANG:C++ */ #include #include #include #include using namespace std; int N,L; long long f[40][40],I; int ans[40]; void dfs(int x,int y,l

TSOI_Vergil的博客 348

USACO 3.2 Stringsobits (kimbits)

/* 动态规划。尝试暴搜,但是超时了 分析: 设长度为n的01串,1的个数不大于v的个数为dp[n,v] 方程:dp[n,v]=dp[n-1,v]+dp[n-1,v-1]; //分别表示在当前位加上0和加上1时的两种状况 边界:dp[i,0]=dp[0,j]=1; 这样我们得到了所有的dp[n,v],需要做的就是据此构造出所求字符串. 设所求串为S,假设S的位中最高位的1在自右向左第K+1位,那

Hello World! 1606

【USACO3.2】解题报告

USACO3.2的沙雕解题报告 :)

stoorz 431

USACO Training Section 3.2 Stringsobits

[url="http://ace.delos.com/usacoprob2?a=LL9wfbIBeVe&S=kimbits"]英文原题[/url] [url="http://www.wzoi.org/usaco/12%5C505.asp"]中文题译[/url] 大意:求至多有L个1的第i个N位二进制数(1 n_th ; yanghui_tri(n_bit+1); int bi...

山中竹笋 211

usaco 3.2 Stringsobits 数位dp

StringsobitsKim 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 conta...

weixin_30436101的博客 158

USACO Section 3.2 Stringsobits

题意: N位二进制数1的个数不超过L个  求  第i个数是多少 思路: 一开始以为是用二进制暴力就行  事实证明我是213 - -b 这题就应该去构造  但是简单的用dfs构造然后计数还是会TLE  因此想到去组合 假如现在想求第k位是0还是1  可用的所有的1全在1~k-1位的种类数为x  如果x 如此就可以先dp打一个杨辉三角的组合数表  然后根据不同位置形成的种类数判断0

House 799
上一篇: USACO 3.2.1 Factorials
下一篇: USACO 3.2.3 Spinning Wheels
devillaw_zhc
博客等级 码龄15年 4粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值