PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

3209: 花神的数论题

Time Limit:

10 Sec

Memory Limit:

128 MB

Submit:

33

Solved:

18

[

Submit

][

Status

][

Discuss

]

Description

背景
尽人皆知,花神多年来凭借无边的神力狂虐各大 OJ、OI、CF、TC …… 当然也包含 CH 啦。
描述
话说花神这天又来讲课了。课后按例有超级难的神题啦…… 我等蒟蒻又遭殃了。
花神的标题是这样的
设 sum(i) 表现 i 的二进制表现中 1 的个数。给出一个正整数 N ,花神要问你
派(Sum(i)),也就是 sum(1)—sum(N) 的乘积。

Input

一个正整数 N。

Output

一个数,答案模 10000007 的值。

Sample Input

样例输入一

3

Sample Output

样例输出一

2

HINT

每日一道理
微笑着,去唱生活的歌谣,不要埋怨生活给予了太多的磨难,不必抱怨生命中有太多的曲折。大海如果失去了巨浪的翻滚,就会失去雄浑;沙漠如果失去了飞沙的狂舞,就会失去壮观。人生如果仅去求得两点一线的一帆风顺,生命也就失去了存在的意义。

对于样例一,1*1*2=2;

数据范围与约定

对于 100% 的数据,N≤10^15

Source

原创 Memphis

[

Submit

][

Status

][

Discuss

]

好吧……这题一开始的范围是N<=1015

然后我很天真的认为这不水吗^?结果……

好吧……

之后要来数据以后才发明……

n<=10^15

只有我这类蒟蒻会被这个骗……

被各种D……

Ok,那么这题就是数位统计了……

刚学的……(还在学这个<-弱)

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#include<cmath>
#include<cctype>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define RepD(i,n) for(int i=n;i>=0;i--)
#define MAXN (100000)
#define MAXL (50+10)
#define F (10000007)
int a[MAXN],len=0;
long long C[MAXL][MAXL];
long long n;
long long calc(int k)
{long long ans=0;ForD(i,len){if (a[i]){ans+=C[i-1][k];k--;}if (k<0) return ans;}return ans;
}
long long pow2(long long a,long long b)
{if (b==0) return 1;if (b==1) return a;long long tmp=pow2(a,b/2);tmp=tmp*tmp%F;if (b%2) tmp=(tmp*a)%F;return tmp;
}
int main()
{
//  freopen("flower1.in","r",stdin);
//  freopen(".out","w",stdout);Rep(i,50){C[i][0]=1;For(j,i) C[i][j]=(C[i-1][j]+C[i-1][j-1]);}/*cout<<pow2(2,1001)<<endl;int pp=1;For(i,1001) pp=(pp*2)%F;cout<<pp;*/while (cin>>n){n++;//cout<<n<<endl;len=0;while (n) {a[++len]=n%2;n/=2;}long long ans=1;//cout<<len<<endl;For(i,len) ans=(ans*pow2(i,calc(i)))%F;printf("%lld\n",ans);};return 0;
}

文章结束给大家分享下程序员的一些笑话语录: 联想——对内高价,补贴对外倾销的伟大“民族”企业。

--------------------------------- 原创文章 By
数据和范围
---------------------------------

数据范围BZOJ 3209(花神的数论题-数位统计+1,被数据范围坑了)相关推荐

  1. bzoj 3209 花神的数论题 —— 数位DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3209 算是挺简单的数位DP吧,但还是花了好久才弄明白... 又参考了博客:https://b ...

  2. [数位dp] bzoj 3209 花神的数论题

    [数位dp] bzoj 3209 花神的数论题 题意:中文题. 思路:和普通数位dp一样,这里转换成二进制,然后记录有几个一. 统计的时候乘起来就好了. 代码: #include"cstdl ...

  3. bzoj 3209: 花神的数论题 喵哈哈村的秘境探险(四)

    3209: 花神的数论题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 2169  Solved: 1006 [Submit][Status][Di ...

  4. bzoj 3209: 花神的数论题

    限于本人DP处于背包--水平,不组声(就是对神奇的数位DP,找出j个1的有多少个,然后j的多少个次方就行) 1 #include<bits/stdc++.h> 2 #define N 10 ...

  5. bzoj3209:3209: 花神的数论题

    觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊 f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g ...

  6. bzoj3209 花神的数论题——数位dp

    题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)-sum(N) 的乘积. 要对1000 ...

  7. BZOJ3209(luogu 4317)花神的数论题题解

    题目 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)-sum(N) 的乘积(n<=1e15). 分析 好吧,一 ...

  8. 【bzoj3209】 花神的数论题

    http://www.lydsy.com/JudgeOnline/problem.php?id=3209 (题目链接) 题意 ${sum(i)}$表示${i}$的二进制表示中${1}$的个数.求${\ ...

  9. 花神的数论题(这题...哎。数位dp咋就这么 not naive 呢)

    题意简介 没什么好说,就是让你求出 1 ~ n 之间每个数转化为二进制后 '1' 的个数,然后乘起来输出积 题目分析 emmmm.... 两种解法(同是 $O(\log^2 N)$ 的算法,组合数效率 ...

最新文章

  1. 【Java笔记】C++与Java的对比
  2. java getjsonarray_无法在Java中访问getJSONArray
  3. ubuntu16.04安装python2.7_如何在Ubuntu16.04 LTS上为python(2.7,3.5,3.6)设置...
  4. 方差偏差权衡_偏差偏差权衡:快速介绍
  5. maven 相关简介,和操作命令
  6. latex longtable caption长度提前换行解决方案
  7. java textarea滚动条_Java Swing TextArea 滚动条和获得焦点
  8. 基于Silverlight4开发的相关工具
  9. xmpp java_XMPP: Android基于Xmpp的即时通讯
  10. Scrapy框架的基本组成及功能使用
  11. OPPO VOOC快充电路和协议
  12. ps2模拟器pc版_如何在Windows PC上使用PS3控制器
  13. CUDA进阶资料专题(一)pinned memory 和 unified memory
  14. 双碳绿色风中,乘势而起了哪些新能源?
  15. docker 部署 gitlab gitlab-runner 实现 CI
  16. 数据库服务器文件路径,服务器数据库的文件路径
  17. hdu 4802 GPA
  18. 发款php蜘蛛统计插件只要有mysql就可用
  19. 小米盒子1s真心不让我爽
  20. ps -ef中的e、f是什么含义

热门文章

  1. VTK:可视化算法之TubesWithVaryingRadiusAndColors
  2. OpenCV图像操作
  3. QT的QQmlExpression类的使用
  4. QT的QDesignerMemberSheetExtension类的使用
  5. C语言字符串字母移位
  6. 返回图片_Vue 图片压缩并上传至服务器
  7. 客户服务器结构的数据库系统,客户服务器结构的数据库的例子
  8. 史上最简单的SpringCloud教程 | 第三篇: 服务消费者(Feign)
  9. IntelliJ IDEA使用(二):tomcat和jetty配置(转自:http://www.cnblogs.com/jenkinschan/p/6052948.html)
  10. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo