题目:花神的数论题

设 sum(i) 表示 i 的二进制表示中 1 的个数。给出一个正整数 N ,求 sum(1)至sum(N) 的乘积。

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
typedef long long LL;
const int N=100005;
const int M=255;
const int MOD=10000007;
LL a[N],len,n;
LL C[M][M];
void Init()
{
LL i,j;
for(i=0;i<60;i++)
{
C[i][0]=1;
for(j=1;j<=i;j++)
{
C[i][j]=C[i-1][j]+C[i-1][j-1];
}
}
}
LL Solve(LL k)
{
LL ans=0;
for(LL i=len;i>=1;i--)
{
if(a[i])
{
ans+=C[i-1][k];
k--;
}
if(k<0) return ans;
}
return ans;
}
LL quick_mod(LL a,LL b)
{
LL ans=1;
a%=MOD;
while(b)
{
if(b&1)
{
ans=ans*a%MOD;
b--;
}
b>>=1;
a=a*a%MOD;
}
return ans;
}
int main()
{
LL n,i,j;
Init();
while(cin>>n)
{
n++;
len=0;
while(n)
{
a[++len]=n%2;
n>>=1;
}
LL ans=1;
for(i=1;i<=len;i++)
ans=ans*quick_mod(i,Solve(i))%MOD;
cout<<ans<<endl;
}
return 0;
}

BZOJ3209(n的二进制表示中1的个数的乘积)相关推荐

  1. JAVA实现输入一个整数,输出该数二进制表示中1的个数(《剑指offer》)

    题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 这个题目有个比较有意思并且被公认的解法,我就先贴答案吧: public class Solution {public int ...

  2. 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示

    转自http://my.oschina.net/ithaibo/blog/142655 题目: 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 题目引自http://ac.jobdu ...

  3. 算法--微软面试:整数的二进制表示中1的个数(Java实现)

    Q题目 整数的二进制表示中1的个数 输入一个整数,求该整数的二进制表达中有多少个1. 例如,输入10,由于其二进制表示为1010,有两个1,因此输出2. 这是一道很基本的考查位运算的面试题. Answ ...

  4. 题库练习5(句子逆序、字符串排序、int型二进制表示中1的个数、购物单)

    1. 句子逆序 将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为"boy a am I".所有单词之间用一个空格隔开,语句中除了英 ...

  5. 计算数值二进制表达式中1的个数

    --------------------------------------------- -- 时间:2019-03-21 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163 ...

  6. 整数的二进制表示中 1 的个数

    2019独角兽企业重金招聘Python工程师标准>>> 题目:整数的二进制表示中 1 的个数 要求: 输入一个整数,求该整数的二进制表达中有多少个 1. 例如输入 10,由于其二进制 ...

  7. 《剑指offer》-统计整数二进制表示中1的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 直观思路就是把二进制表示从右往左统计1的个数.直接想到移位操作来迭代处理.坑点在于负数的移位操作会填充1.有人贴出了逻辑移位 ...

  8. 二进制表示中 1 的个数

    题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 需要注意的是: 右移运算符是将一个二进制数按指定移动的位数向右移动. 移动过程中,正数最高位补0,负数最高位补1,无符号数最 ...

  9. 转:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数

    转:http://toutiao.com/a4280977370/ [解法一] 可以举一个八位的二进制例子来进行分析.对于二进制操作,我们知道,除以一个 2,原来的数字将会减少一个0.如果除的过程中有 ...

最新文章

  1. 图解Reformer:一种高效的Transformer
  2. 怎么实现阴影效果呢?
  3. 小网站asp好还是php好,网站程序是asp好还是php好,哪个更利于优化?
  4. php gzip乱码,php file_get_contents抓取Gzip网页乱码的三种解决方法
  5. 使用expect命令打通所有集群机器
  6. 大并发服务器不得不说的技术--TCP_CORK
  7. 新概念英语(1-95)Tickets,please!
  8. IDEA 导入项目 导入不进去
  9. 微信小程序选项卡底线转换滑动动画
  10. VENDORNPC.LUA --随身商人
  11. java校园实习兼职
  12. 边策划边制作的游戏开发日志(一) 用Untiy制作类似《莱莎的炼金工坊》移动和视角系统(第三人称控制系统)
  13. 大一上课设——贪吃蛇(链表 + easyx)
  14. Flutter-解决Try catch出现异常:type ‘_TypeError‘ is not a subtype of type ‘Exception‘ in type cast
  15. Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
  16. css3 呼吸的莲花_Css实例制作“荷花盛开”代码演示
  17. 调研:暴恐识别(图像识别)by_xxzcc
  18. 2021年全国大学生数据建模 C题 数学建模大赛
  19. 关闭office提示:为什么要冒险,获取正版office
  20. 今日金融词汇--- 普通股,是什么?

热门文章

  1. RocketMQ的架构
  2. SpringMVC的请求-文件上传-客户端表单实现
  3. Nacos注册中心介绍
  4. 类的加载连接和初始化
  5. Collection集合常用功能
  6. android 自定义 child,Android自定义View
  7. Shell命令-Sort,Join
  8. 【小题目】判断一个数字是否是3的倍数
  9. zabbix启动无效,无法监听10051
  10. OpenStack运维面试(1)