拆位 ---- C. Johnny and Another Rating Drop[位运算,计算每一位的贡献+推导过程]
C. Johnny and Another Rating Drop
题目大意:就是定义一个不公平度就是相邻两个数的二进制位不相同数
比如说:100和011就是有3位不同
现在给你一个n∈[1,1e18]n\in[1,1e18]n∈[1,1e18]问你从[1,n][1,n][1,n]每一对相邻数的不公平度之和是多少
解题思路:
000
001
010
011
100
101
我们看一下对于
第一位每隔202^020就会从0−>1或者1−>00->1或者1->00−>1或者1−>0
第二位每隔212^121就会从0−>1或者1−>00->1或者1->00−>1或者1−>0
第三位每隔222^222就会从0−>1或者1−>00->1或者1->00−>1或者1−>0
…
根据题意对答案有贡献的只有数位在变化的时候
那么对于第一位n个数一共变化了n20n个数一共变化了{n\over2^0}n个数一共变化了20n
对于第二位n个数一共变化了n2!n个数一共变化了{n\over2^!}n个数一共变化了2!n次
…
sum=n20+n21+......+n2xsum={n\over2^0}+{n\over2^1}+......+{n\over2^x}sum=20n+21n+......+2xn
拆位 ---- C. Johnny and Another Rating Drop[位运算,计算每一位的贡献+推导过程]相关推荐
- Johnny and Another Rating Drop CodeForces - 1362C(规律)
The last contest held on Johnny's favorite competitive programming platform has been received rather ...
- 位运算+取某一位+java_Java位运算小节
2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算.位运算符可以分为逻辑运算符(包 ...
- java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...
由位运算到操作符,再到逐步理解群论 Step by Step for Understanding from Bitwise to Operators, then Group Theory 是否曾经会有 ...
- 借由AI招聘软件,这位CEO 48h 内从4000名求职者中锁定那一位
借由AI招聘软件,这位CEO 48h 内从4000名求职者中锁定那一位 本文作者:张利 2017-05-31 23:35 导语:Freeman,作为公司CEO并且曾经担任过无数重要职位,这时也不得不耗 ...
- C语言位、字节、半字、字的概念和内存位宽
位.字节.半字.字的概念和内存位宽 什么是内存?(从硬件和逻辑两个角度) 内存的逻辑抽象图(内存的编程模型) 位和字节 字和半字 内存位宽 什么是内存?(从硬件和逻辑两个角度) 从硬件角度:内存是电脑 ...
- Java黑皮书课后题第3章:**3.9(商业:检验ISBN-10)ISBN-10由10个个位整数d1d2d3d4d5d6d7d8d9d10组成,最后一位d10是校验和,输入前9个数,显示10位ISBN
**3.9(商业:检验ISBN-10)ISBN-10由10个个位整数d1d2d3d4d5d6d7d8d9d10组成,最后一位d10是校验和,输入前9个数,显示10位ISBN 题目 题目概述 运行示例 ...
- 用位运算计算两数的和
用位运算计算两数的和 文章目录 用位运算计算两数的和 方法一: 方法二: 方法一: //方法一: //sum为计算结果 //carry为进位 int bitAdd(int a, int b) {if ...
- java实现次方的运算_Java中对于位运算的优化以及运用与思考
引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...
- #python计算结果百位500向下取整,(0-499取000,500-999取500)
!/usr/bin/env python coding:utf-8 计算结果百位500向下取整,(0-499取000,500-999取500) import math calc_Amount = fl ...
最新文章
- 机器学习梯度下降法举例
- 存储块的删除与状态查询
- java程序运存扩容
- 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
- oracle之创建和管理表
- Android Handler的内存泄露场景分析
- 2.1 API : LogisticRegression
- 利用vs10和opencv识别图片类型身份证的号码
- Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件
- logisim软件使用学习
- 《操作系统》实验报告——进程通信
- Java class文件反编译工具推荐以及Eclipse中查看/调试Jar包中的代码
- 【Eclipse】Eclipse使用技巧
- 数理统计中的卡方分布,t分布和F分布
- BUCK电感工作模式
- 服务器多开虚拟,个人服务器多开虚拟主机
- Windows下打包安装程序
- 第一章 核磁共振的物理学基础
- python怎么用sin_python怎么打sin
- Python使用进程池管理进程和进程间通信