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[位运算,计算每一位的贡献+推导过程]相关推荐

  1. Johnny and Another Rating Drop CodeForces - 1362C(规律)

    The last contest held on Johnny's favorite competitive programming platform has been received rather ...

  2. 位运算+取某一位+java_Java位运算小节

    2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动. 位运算表达式由操作数和位运算符组成,实现对整数类型的二进制数进行位运算.位运算符可以分为逻辑运算符(包 ...

  3. java加减乘除运算代码_从“位运算”炫技到“操作符”,再到逐步理解“群论”...

    由位运算到操作符,再到逐步理解群论 Step by Step for Understanding from Bitwise to Operators, then Group Theory 是否曾经会有 ...

  4. 借由AI招聘软件,这位CEO 48h 内从4000名求职者中锁定那一位

    借由AI招聘软件,这位CEO 48h 内从4000名求职者中锁定那一位 本文作者:张利 2017-05-31 23:35 导语:Freeman,作为公司CEO并且曾经担任过无数重要职位,这时也不得不耗 ...

  5. C语言位、字节、半字、字的概念和内存位宽

    位.字节.半字.字的概念和内存位宽 什么是内存?(从硬件和逻辑两个角度) 内存的逻辑抽象图(内存的编程模型) 位和字节 字和半字 内存位宽 什么是内存?(从硬件和逻辑两个角度) 从硬件角度:内存是电脑 ...

  6. 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 题目 题目概述 运行示例 ...

  7. 用位运算计算两数的和

    用位运算计算两数的和 文章目录 用位运算计算两数的和 方法一: 方法二: 方法一: //方法一: //sum为计算结果 //carry为进位 int bitAdd(int a, int b) {if ...

  8. java实现次方的运算_Java中对于位运算的优化以及运用与思考

    引言 随着JDK的发展以及JIT的不断优化,我们很多时候都可以写读起来易读但是看上去性能不高的代码了,编译器会帮我们优化代码.之前大学里面学单片机的时候,由于内存以及处理器性能都极其有限(可能很多时候 ...

  9. #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 ...

最新文章

  1. 机器学习梯度下降法举例
  2. 存储块的删除与状态查询
  3. java程序运存扩容
  4. 名为 cursor_jinserted 的游标不存在_性能优化技巧 - 程序游标
  5. oracle之创建和管理表
  6. Android Handler的内存泄露场景分析
  7. 2.1 API : LogisticRegression
  8. 利用vs10和opencv识别图片类型身份证的号码
  9. Git-第三篇廖雪峰Git教程学习笔记(2)回退修改,恢复文件
  10. logisim软件使用学习
  11. 《操作系统》实验报告——进程通信
  12. Java class文件反编译工具推荐以及Eclipse中查看/调试Jar包中的代码
  13. 【Eclipse】Eclipse使用技巧
  14. 数理统计中的卡方分布,t分布和F分布
  15. BUCK电感工作模式
  16. 服务器多开虚拟,个人服务器多开虚拟主机
  17. Windows下打包安装程序
  18. 第一章 核磁共振的物理学基础
  19. python怎么用sin_python怎么打sin
  20. Python使用进程池管理进程和进程间通信

热门文章

  1. VUE的本地应用-V-TEXT
  2. maven的setting.xml文件配置信息【仅仅更改了一处】
  3. 揭秘三维视觉之结构光原理
  4. 假如计算机是中国人发明的,那代码应该这么写
  5. springMVC 使用WebApplicationContext获取ApplicationContext对象
  6. 【Unity_UWP】Unity 工程发布win10 UWP 时的本地文件读取 (上篇)
  7. Spring事务配置探究
  8. 周鸿祎重做路由器,到底在做什么?
  9. C程序演示产生僵死进程的过程
  10. History(历史)命令用法