HDU 4588 Count The Carries(数学)

三轴云台稳定控制算法优化实战:从PID到模糊自适应 本文深入探讨了三轴云台稳定控制算法的优化实践,从经典PID控制到模糊自适应算法的进阶应用。通过实战案例和代码示例,详细解析了PID调参技巧、模糊控制实现及多传感器数据融合方法,帮助工程师在复杂环境下提升云台抗干扰能力和响应速度,特别适用于无人机航拍等场景。 阅读详情

Count The Carries

Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1581    Accepted Submission(s): 559


Problem Description
One day, Implus gets interested in binary addition and binary carry. He will transfer all decimal digits to binary digits to make the addition. Not as clever as Gauss, to make the addition from a to b, he will add them one by one from a to b in order. For example, from 1 to 3 (decimal digit), he will firstly calculate 01 (1)+10 (2), get 11,then calculate 11+11 (3),lastly 110 (binary digit), we can find that in the total process, only 2 binary carries happen. He wants to find out that quickly. Given a and b in decimal, we transfer into binary digits and use Implus's addition algorithm, how many carries are there?
 

Input
Two integers a, b(0<=a<=b<1000000000), about 100000 cases, end with EOF.
 

Output
One answer per line.
 

Sample Input
1 2 1 3 1 4 1 6
 

Sample Output
0 2 3 6
题目大意:给出两个十进制数a,b,求区间[a,b]上所有二进制数相加的总进位次数。
思路:由于题目数据量很大,所以不可能采取两两相加的形式来计算,而是应该将所有二进制数摞在一起找规律计算。首先给出0——15的二进制表示形式如下
0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1
通过观察我们发现最右边一位依次为010101......,倒数第二位为00110011......,即从右边数第n位,其对应的二进制数依次为2^n个0,2^n个1,2^n个0,2^n个1......然后依次循环下去。而每一位所进的位数等于(这一位1的个数+前一位所进的1的个数)/2,而每一位的1是有周期性出现的。这样思路就找到了,即统计每一位的进位个数并相加,最后的总和就是答案。
#include<cstdio>
#include<cstring>
#include<vector>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;


typedef long long LL;


LL solve(LL v, LL i) {


  LL ans = 0;
  ans += (v + 1LL) / (1LL << i) * (1LL << (i - 1LL)); //因为算周期时是从0开始算的,所以相应的v也要加1
  ans += max( (v + 1LL) % (1LL << i) - (1LL << (i - 1LL)), 0LL );
  return ans;


}


int main()
{
    LL a,b;
    while (scanf("%I64d %I64d", &a, &b) == 2) {
        LL sum = 0, id = 0;
        for (int i = 1; i <= 62; i++) {
            LL x = solve( max(0LL, a - 1), i ); //分别统计0——(a-1)与0——b中某一位中1的个数,二者的差就是a——b中这一位的1的个数
            LL y = solve(b, i);
            sum += (y - x + id) / 2; //1的个数+进位数
            id = (y - x + id) / 2; //进位数
            if (!x && !y && !id) break;
        }
        printf("%I64d\n",sum);
    }
}
2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度) 2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。 阅读详情

相关推荐

U-Boot 适配新型号 SPI Nor Flash 实战解析

本文详细解析了U-Boot适配新型号SPI Nor Flash的全过程,从JEDEC ID识别错误入手,深入源码分析Flash信息数据库,结合实际手册参数添加新设备支持。重点介绍了设备树同步和验证调试的关键步骤,并总结了常见问题与解决方案,为嵌入式开发者提供实用参考。

weixin_29170327的博客 201

HDU-4588 Count The Carries (模拟)

看到数据范围就反应到不能直接模拟计算,又想到以前类似这种范围特别大的题目都是按位处理,就反应过来可以统计每一位中1的个数,直接算出当前位的进位数 写了前几位的数就能发现每一位上1的个数的分布是有规律的: 0:0000 1:0001 2:0010 3:0011 4:0100 5:0101 6:0110 7:0111 8:1000 在最前面添加一个0就能很容易的求出0~n中每一位上1的个数 规律如下: 从右开始数的第i位上,每2^i个数是一个循环,其中1的个数占每个循环的后2^(i-1)个 然后就能很容易的写出

idealism_xxm的专栏 472

【车间调度】车间调度问题的分类

本系列为自己学习调度相关知识的记录,如有误请指出,也欢迎调度方向的小伙伴加我好友共同交流。 车间调度问题的分类 根据工件和车间构成不同,车间调度问题可分为以下几种 1.单机调度问题 在单机调度问题(S,SMP)中,加工系统只有一台机床,待加工的工件有且仅有一道工序,所有工件都在该机床上进行加工。此问题是最简单的调度问题,当生产车间出现瓶颈机床时的调度就可视为此调度问题。 ...

weixin_51656605的博客 7430

HDU 4588

Count The Carries Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1538    Accepted Submission(s): 540 Problem Description One day,

zjbh89757的专栏 558

Win11下WSL2安装Ubuntu22.04避坑指南:从镜像源到C++环境配置

本文提供了一份详细的Win11下WSL2安装Ubuntu22.04的实战避坑指南。内容涵盖从WSL2核心安装、自定义安装路径,到更换国内镜像源以解决更新缓慢问题,并一站式配置完整的C++开发环境(包括GCC、CMake、vcpkg等),最后分享提升开发体验的进阶技巧,助你在Windows上打造高效的Linux开发工作站。

weixin_29260291的博客 562

三维重建(十八)——colmap的使用(粗浅)

三维重建(十八)——colmap的使用(粗浅)

河海大学研究生在读的学习笔记 1376

Hdu 4588 Count The Carries (规律)

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4588 思路: 0     0000 1     0001 2     0010 3     0011 4     0100 5     0101 6     0110 7     0111 8    1000 9    1001 10

哆啦AC梦的博客 666

Oracle EBS 如何处理MMT表错误-WIP 实体未定义或不具有期间余额项

错误说明:WIP 实体未定义或不具有期间余额项。(The wip entity is either not defined or does not have a period balance entry)由于工单的创建日期为4月份,工单的余额表记录的期间是4月份,而3月份工单余额表中没有记录。公司将上一个新的库存组织,有一部分测试的工单创建日期在4月份,而工单的发放日期、发料事务处理日期和完工事务处理日期均在3月份。1、关闭3月份库存会计期,待定事务处理存在未计成本物料/WMS。成本类型: PAC成本。

陈显平的专栏-Oracle EBS 652

HDU4588 Count The Carries(数字统计与数字规律)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4588 题目描述: 1)给两个数a,b; 2) 将a,b之间的数化为二进制相加;(包括a,b) 3)求总共的进位个数; 解题思路: 1)进位首先是在算术相应位对齐相加过程中产生的; 2)所以要模拟算术相加过程,总结怎样得到进位个数; 3)所以,另外考虑到...

weixin_34267123的博客 152

orangepi香橙派用户名及密码修改和VNC远程登陆

1、修改 /etc/passwd用户信息文件 vim /etc/passwd #admin❌503:501::/home/admin:/bin/bash #把用户名admin改成rest #test❌503:501::/home/test:/bin/bash 2、修改 /etc/shadow用户密码文件 vim /etc/shadow #admin:Dnakfw28zf38w:8764:0:168:7::: #由于密码加密方式存放,只修改用户名即可(密码不变) #test:Dnakfw28zf38w:876

weixin_40227845的博客 5663

使用ChatGPT工具阅读文献的实战教程

本文介绍核心内容为使用ChatGPT工具阅读文献,希望对学习和使用ChatGPT的同学们有所帮助。为了兼顾质量和速度,本专栏的更新频率为一周一到两更。 文章目录 1. 前言 2. 实战教程 2.1 下载工具并登录 2.2 提取文献中的关键信息

herosunly的博客 15万+

hdu-4588 数学推导

题目链接:https://cn.vjudge.net/problem/HDU-4588 转自:https://blog.youkuaiyun.com/cc_again/article/details/13171943 题意:给你数字a,b,求让a一直累加到b时二进制一共进了多少次位。 思路:暴力超时。发现第i位上的01周期位2^i,并且01各占一半。 如下所示 0 0 0 0 0 0 0 0 0 (0...

A 382

自动驾驶领域自动化数据标注应用

自动驾驶领域自动化数据标注应用 1. 背景介绍 1.1 自动驾驶技术的发展 自动驾驶技术近年来取得了长足的进步,吸引了众多科技公司和传统车企的投入。自动驾驶系统需要感知周围环境、做出决策并控制车辆,是一个极具挑战的任务。其中,环境感知是自

AI天才研究院 2214

数学题-hdu-4588-Count The Carries

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4588 题目意思: 给一个区间[a,b],(0 解题思路: 依次相加可以转换成先所有的数一起相加,然后从低到高统一进位。只需统计a~b之间每一位有多少个1即可。从而转换成0~b中每位有多少个1,0~b-0~a-1得a~b. 分析得第i位的0,1周期为2^i,并且0、1各占一半即2^i-

cc_again的专栏 1957

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OV9734 DATASHEET,完整规格书

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

HDU 4588 Count The Carries(数学 二进制 规律)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4588Problem DescriptionOne day, Implus gets interested in binary addition and binary carry. He will transfer all decimal digits to binary digits to make ...

1423

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HDU 4588 Count The Carries(数学 找规律)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4588 这个题目规律还是好找的,具体实现好好想想也不难,但是要注意,进位可能会到60位,要注意,尽量让数组下标在不越界的情况下取最大 题目意思很简单,看题目给的例子就看出来了,给定a b  :  a 后来一看范围还是算了,老老实实找规律吧,其实这个题目找的就是ab区间内所有数组二进制每一位的1出现

sunrain的专栏 1053

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

HDU 4588 Count The Carries 数学

Count The CarriesTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87326#problem/C Description One day, Implus gets interested in bi...

weixin_30505043的博客 104

hdu 4588 Count The Carries 数学

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4588 题意: 以二进制加法形式算 a + (a+1) + (a+2) + ... + b 统计之中有多少次进位 想法: 算从1加到b和从1加到(a-1)的每一位上各有多少次进位 分别存到ca和cb 然后两个数组的对应位置相减得到从a加到b每一位上各有多少次进位 存到c...

weixin_30502965的博客 132

HDU 4588 Count The Carries(数学统计)

Description One day, Implus gets interested in binary addition and binary carry. He will transfer all decimal digits to binary digits to make the addition. Not as clever as Gauss, to make the add...

weixin_30702413的博客 122

HDU 4588 Count The Carries (数学-- 二进制技巧枚举)

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4588 大体题意: 给你两个十进制数字a和b ,求得二进制数从a 加加 一直加到b 总共二进制进位多少? 思路: 比赛时没有做出来,请教的同学: 不过思路的确很巧妙: 既然是求和,那么我们不妨先把这些数摆出来看看规律: 0   0000 1   0001 2   0010 3  

aozil_yang的博客 493

hdu 4588 Count The Carries(数论)

题目链接:hdu 4588 Count The Carries 题目大意:给出a和b,然后从a一直加到b,问对于二进制的情况下,发生了多少次的进位。 解题思路:将一个数的看成二进制数,然后对每一位进行计算。 比如从1加到7,我们可以多加一个0,这样是对结果是没有影响的   对于第一个位来说,周期为2^1,每个周期中有2^(1-1)个1,每两个1进位一次; 同

不慌不忙、不急不躁 1299

HDU 4588 Count The Carries

Count TheCarries Time Limit: 4000/2000 MS(Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 207    Accepted Submission(s): 97 Problem Description One day, Implus

Shuuki 900

hdu 4588 Count The Carries

题目:大意就是说给定一个区间[l,r],求出l到r的二进制相加的进位次数。 题解:首先的思路就是暴力,把每个数的二进制形式表示出来,再加起来,不过题目中说,测试数据大约为10000个,测试范围为1-1000000000,这样肯定会超时。然后就考虑,是否能够通过计算把每一二进制位的1的个数求出来,这样就能减少很多时间。首先,看一下1-9的二进制表示法来找一些规律: 这样我们发现,对于第一位二进制

浮躁的人,终究一事无成! 1443

[HDOJ4588]Count The Carries(数学,规律)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4588 题意:从a加到b,每次结果加到a上,看在二进制下一共发生了多少次进位。 把0到n的所有数二进制下下来,可以发现规律:第一位循环节为2,每次循环01。第二位循环节是4,每次循环0011。以此类推。 计算两个数的各位分别出现了多少次1,再减掉。模拟进位统计进位次数就可以。 1 #inc...

weixin_30851867的博客 117

HDU 4588 Count The Carries 计算二进制进位总数

点击打开链接 Count The Carries Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 672    Accepted Submission(s): 230 Problem Description One

代码改变世界,keep coding。 1775

Count The Carries - HDU 4588 水题

Count The Carries Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1158    Accepted Submission(s): 383 Problem Description One day,

提比的强行AC 512
上一篇: Codeforces 534C Polycarpus' Dice(思路)
下一篇: HDU 4596 Yet another end of the world (拓展欧几里得)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值