HDU5491 The Next 位模拟

国产FPGA开发实战:紫光同创编程软件中的约束文件详解与常见问题 本文详细解析了紫光同创FPGA编程软件中约束文件的关键配置技巧与常见问题。通过基础架构解析、时钟约束实践、物理约束调控及典型问题排查指南,帮助开发者高效掌握国产FPGA开发中的约束文件应用,提升开发效率与设计稳定性。 阅读详情

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5491


题目大意:找出比D大的且二进制中1的个数位于区间[S1,S2]内的最小的数。


分析:对于给出的D,我们令D++,然后首先判断D是否属于区间[S1,S2],如果属于,那么D即为答案,否则无异于以下两种情况:

(1)D中1的个数小于S1,对于这种情况,我们需要做的就是在增加D的同时,增加其二进制中1的个数,我们从其二进制的低位(假设最低位的标号为0)开始找,找到第一个0(假设该位的标号为i),将该位的0变为1(即令D+2^i),然后继续判断;

(2)D中1的个数大于S2,对于这种情况,同理,我们需要从低位开始找,找到第一个1,将这个1变为0(同样是加上2^i),直至D满足题意为止。

需要注意的,给出的D是int类型的,但比D大的数可能会超过int,我们用long long来存。


实现代码如下:

#include <cstdio>
using namespace std;
typedef long long ll;
int main()
{
    int t,T=1,s1,s2;
    ll d;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%I64d%d%d",&d,&s1,&s2);
        d++;
        while(true)
        {
            ll m=d;
            int num=0,cnt=0,bri[35];
            while(m)
            {
                if(m%2)
                {
                    bri[num++]=1;
                    cnt++;
                }
                else bri[num++]=0;
                m/=2;
            }
            if(cnt<s1)
            {
                int i=0;
                for(;i<num;i++)
                  if(bri[i]==0) break;
                d=d+(1<<i);
            }
            else if(cnt>s2)
            {
                int i=0;
                for(;i<num;i++)
                  if(bri[i]==1) break;
                d=d+(1<<i);
            }
            else break;
        }
        printf("Case #%d: %lld\n",T++,d);
    }
    return 0;
}


Isaac Lab & GR00T N1 入门教程(七)人形机器人推理与技能学习策略基准测试 本文介绍了IsaacLab设计的工业机器人操作评估系统,包含两项任务:螺母倾倒(成功率91%)和排气管分拣(成功率95%)。系统支持通过IsaacGR00TN1模型进行策略闭环评估,提供完整的开发环境配置指南(需Ubuntu22.04、CUDA12.8等环境),数据集下载方式(HuggingFace平台托管),以及模型微调流程。评估支持并行化测试(建议10-30个并行环境),并给出详细硬件配置建议(推荐RTX A6000 Ada显卡)。文档还包含常见问题解决方案,特别说明当前暂不支持Blackwell GP 阅读详情

相关推荐

Decoder如何工作、Transformer如何训练、以及exposure bias问题

1、结合图文描述Decoder中各个模块是什么,以及是如何工作的。2、transformer是如何训练的。3、exposure bias问题造成的原因及解决方法

m0_59113542的博客 3345

HDU-5491 The Next(模拟)

原题链接 (昨天做的时候太困了,瞎写的,写的贼长,,写完自己都不想看,所以重新整理下) 题意:给定三个数字d,s1,s2,求二进制1的个数在s1-s2范围内的最小的>d的数字,保证答案一定存在。 思路: 分情况讨论 1.若d的最后一位为0并且d的二进制位数<s2,那么d+1就是答案。 2.其他时候都要减少1的个数,那么就让d加上lowbit(d),这就是1比d少并且大于d的最小值了,但...

smilng的博客 219

PFC胶结模型实战:从线性到平行粘结的力学行为解析

本文深入解析了PFC中线性接触与平行粘结(pb模型)的核心差异与应用。平行粘结模型通过模拟胶结层的力学行为,能够有效传递拉力和抵抗弯矩,是模拟岩石、混凝土等胶结材料的关键。文章详细介绍了其变形与强度参数的设置、法向与切向行为的验证方法,并揭示了全量与增量力计算中易出现的“幽灵力”问题及其解决方案,为复杂模型的构建与调试提供了实用策略。

weixin_29230773的博客 1203

hdu 5491 The Next

原题链接: http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意: T组测试数据。 L,S1,S2。 L的二进制中有x个1,x满足  S1 求满足S1 代码如下: #include #include #include using namespace std; const int MAXN=40; int

sunshine_YG的专栏 1129

STM32家电安全开发实战:手把手教你用X-CUBE-CLASSB通过IEC60730 Class B认证

本文详细解析了如何使用STM32的X-CUBE-CLASSB软件包通过IEC60730 Class B认证,涵盖认证核心要求、软件包架构、工程集成配置及调试技巧。针对家电安全开发,提供了从单元测试到压力测试的全流程方案,帮助开发者快速实现符合国际安全标准的嵌入式控制系统。

pink的博客 704

第五节 Amesim《直动型溢流阀HCD建模》HCD5 学习资料

利用HCD原则创建直动型溢流阀的界面。这可能包括图形化表示直动型溢流阀的工作原理、操作方式和调节方法。这样的界面应当直观且易于理解,使用户能够轻松了解阀门的功能和使用方法。

m0_58052642的博客 1330

hdu 5491 The Next(位操作)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5491 思路: 考虑通过比较当前的1的数目来进行最小的数的修正。 先将D加1,然后计算出D的1的数目tot,这时候比较tot和s1,s2的大小,这时候有两种情况: 1、tot 2、tot>s2,这时我需要减少1的数目,所以我从右开始找到一个1,将D加上2^i。 如此循环上述过程,直到

hahahaha 1453

从STM32F411到华大HC32F460:一个真实项目移植的踩坑与填坑全记录

本文详细记录了从STM32F411移植到华大HC32F460芯片的全过程,包括开发环境搭建、时钟树配置、中断处理、外设驱动、看门狗陷阱、Flash操作和低功耗设计等关键坑点及解决方案。特别针对HC32F460的200MHz主频、双PLL架构和HSRUN模式等特性进行了深入分析,为工程师提供实用的移植指南,帮助节省大量调试时间。

weixin_33691817的博客 418

hdu 5491 The Next(位运算+贪心)

题目链接:hdu 5491 The Next解题思路首先将初始的d+1,然后判断二进制先1的个数是否满足。 如果多了,找到最小的i使得s&2^i=1. 如果少了,找到最小的i使得s&2^i=0. 然后s + 2^i,这样保证了每次增加的值最少。代码#include <cstdio> #include <cstring> #include <algorithm>using namespace s

不慌不忙、不急不躁 831

电源芯片TPS54560典型应用电路及设计详解

TPS54560 是一款配有集成型高侧 MOSFET 的 60V、5A DC-DC转换器,输入电压范围7-60V,输出电压可通过外部反馈电阻设置成略低于输入电压的任意值。**所以,**R5=31.25KΩ、R6:10KΩ(常用值)时,即可设置输出电压为 3.3V。**所以,**R5=140KΩ、R6:10KΩ(常用值)时,即可设置输出电压为12V。设计 TPS54560 的输出电压时,主要通过外部反馈电阻网络来设置输出电压。因此,输出 3.3V ,输入电压24V时推荐的电感值为 8µH 至 10µH。

weixin_42306872的博客 1万+

MIMIC数据库简介

一 、MIMIC简介 MIMIC(Medical Information Mart for Intensive Care),是一个大型的公开数据库。该数据库记录了2001年至2019年期间贝斯以色列女狄肯斯医疗中心重症监护病房患者的相关数据,拥有4万多名患者的医疗健康数据和记录。 MIMIC数据库记录了人口统计学信息,如病人的性别、身高、宗教等情况。记录了实验室检验信息,如血常规,肝功能,肾功能等实验室检测数据。记录了患者的用药信息,如高血压患者服用了治疗高血压类药物等。记录了护理人员以及患者的护理级别等。

越努力 越幸运 1万+

hdu 5491

The Next Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 886    Accepted Submission(s): 367 Problem Description Let L denote the numb

01的世界 451

嵌入式SDIO 总线面试题及参考答案

SDIO 的 4 位总线模式是一种提高数据传输效率的工作模式。在传统的 1 位总线模式下,数据只能通过一根数据线(DAT0)进行传输,这限制了数据传输的带宽和速度。而在 4 位总线模式下,DAT0 - DAT3 这 4 根数据线同时用于数据传输,相当于在同一时间内可以传输 4 倍于 1 位模式的数据量,从而显著提高了数据传输的带宽和速度。要通过 CMD6 命令将 SDIO 总线从当前模式切换到 4 位总线模式,需要遵循以下步骤:第一步,主设备需要确保 SDIO 卡支持 4 位总线模式。

大模型大数据攻城狮的专栏 1717

HDU5491 The Next 字符串+位模拟+思维

1.题目描述: The Next Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2024    Accepted Submission(s): 732 Problem Description Let L

终有绿洲摇曳在沙漠 378

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【贪心】【模拟】HDU 5491 The Next (2015 ACM/ICPC Asia Regional Hefei Online)

题目链接:   http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意:   一个数D(031),求比D大的第一个满足:二进制下1个个数在[s1,s2]范围内。D已经满足[s1,s2]。 题目思路:   【贪心】【模拟】   首先将这个数转成二进制统计总共1的个数s,再求出末尾连续0和1的个数n0,n1。

Coolxxx的博客 396

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hdu 5491 The Next(数学模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5491 分析:对于给出的D,我们令D++,然后首先判断D是否属于区间[S1,S2],如果属于,那么D即为答案,否则无异于以下两种情况: (1)D中1的个数小于S1,对于这种情况,我们需要做的就是在增加D的同时,增加其二进制中1的个数,我们从其二进制的低位(假设最低位的标号为0)开始找,找到第一个

hexianhao的博客 367

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

HDU 5491 The Next

2015 ACM/ICPC Asia Regional Hefei Online 方法:先把D的二进制最高位前加0,如1101则为01101,然后从后面开始选出为0的位置:再符合s1             处理方法为:从低位开始填1(尽可能少,使L的值刚好为s2就可以了),再后面的就填0了。             这样最先得到的就是答案,刚开始时想if各种情况,但是思维容易乱 #

KeyboardPianist的博客 432

HDU5491 The Next

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5491 题意:一个数对应的二进制的1的个数在[ s1 , s2 ]内,则称为WHY number。 给定一个数字d为WHY number,求比d大的最小的WHY number(即下一个) 思路:先计算出d的二进制中含有1的个数,如果小于上限d2且d是偶数,则答案为d+1。 否则加

West___wind的博客 395

hdu 5491 The Next 2015合肥网络赛 贪心 位运算

2015合肥网络赛签到题。

ned_chu的博客 468

hdu 5491 The Next (位运算)

http://acm.hdu.edu.cn/showproblem.php?pid=5491 题目大意:给定一个数D,它的二进制数中1的个数为L,求比D大的数的最小值x且x的二进制数中1的个数num满足s1 <= num <= s2 分析:将D+1变成n,求其二进制数中1的个数L (1)如果L在(s1, s2)范围内,直接输出 (2)如果nu...

deyou1988的专栏 153

HDU 5491 The Next

题意:给你一个数d,和一个范围s1到s2,求比d大并且最接近d的一个数,使得它转化成二进制后数字1的个数在s1到s2内。 解析:位运算,d++,若d的二进制数中1的个数小于s1的话,则找到二进制数中从右向左的第一个0,下标为i,将其转化为1,以此来增加1的个数,则要在d的基础上加2的i次方。 若d的二进制数中1的个数大于s2的话,则找到二进制数中从右向左的第一个1,下标为i,将其转化为0,以此

绿树蓝天碧海的博客 308

HDU 5491 The Next(技巧性模拟)

Let LL denote the number of 1s in integer DD’s binary representation. Given two integers S1S1 and S2S2, we call DD a WYH number if S1≤L≤S2S1≤L≤S2. With a given DD, we would like to find the next WYH number YY, which is JUST larger than DD. In other words,

HJY 358

HDU 5491 The Next(位运算)

题意:已知D(0<=D<2^31)、s1、s2,其中L为D转化为二进制数时1的个数,题目保证s1<=L<=s2,求一个数,满足以下条件: 1、比D大 2、转化为二进制时1的个数在[s1, s2]内 3、找出满足1、2条件的最小数字 分析: 1、首先将D加1,假设该数为x,求出x转化为二进制时1的个数cnt。 2、若s1<=cnt<=s2,则...

Cherrychan2014的博客 133

HDU5491 The Next【二进制】

题目大意: L 是整数 D 的二进制中 1 的个数,如果 s1 <= L <= s2,则称 D 是一个 WYH数。 现在给你一个整数 D 和 s1、s2,求比 D 大的下一个 WYH数是多少。 解题思路: 参考博文:http://blog.youkuaiyun.com/joyce__yin/article/details/48786131 从低位向高位考虑。 用数组 Num[] 来存 D 的二进制形式(从低位到高位),Sum[] 来存储二进制从高位到 当前位上 1 的个数。然后从低位到高位枚举 D

程序员充电站(itcharge) 728

[思路题] hdu 5491 The Next

题意: 找一个最小的比D大的且二进制数含有1的个数在 s1~s2 之间。 保证输出的D的二进制数也在s1~s2之间 思路: 因为D符合题意,所以我们先考虑如果D%2==0,那么加个1会不会超过s2,不会的话 答案就是D+1 那么如果会或者不是1,那么肯定D要发生进位了。 因为要比D大,所以我们把D二进制最后一个1之前的第一个0变成1,这之后都为0 然后从最后开始补1直到符合s1为止

Enmity_Dark 550

hdu5491 The Next

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 740    Accepted Submission(s): 294 Problem Description Let L denote the number of

新月 716
上一篇: HDU5492 Find a path DP
下一篇: HDU5489 Removed Interval LIS
AC_Gibson
博客等级 码龄12年 113粉丝 387原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值