http://www.lydsy.com/JudgeOnline/problem.php?id=3209 (题目链接)

题意

  ${sum(i)}$表示${i}$的二进制表示中${1}$的个数。求${\prod^n sum(i)}$

Solution

  ${f_{i,s}}$表示dp到第${i}$位,已经有${s}$个${1}$时的乘积。然后一路dfs就可以了。

细节

  LL,返回值要与1取个max

代码

// bzoj3598
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<ctime>
#define LL long long
#define inf (1ll<<30)
#define MOD 10000007
#define Pi acos(-1.0)
#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
using namespace std;LL f[60][60],m;
int n,t[60];LL dfs(int pos,LL s,int lim) {if (!pos) return s;if (!lim && f[pos][s]!=-1) return f[pos][s];int end=lim ? t[pos] : 1;LL res=1;for (int i=0;i<=end;i++)(res*=max(1ll,dfs(pos-1,s+i,lim && i==end)))%=MOD;if (!lim) f[pos][s]=res;return res;
}
int main() {memset(f,-1,sizeof(f));scanf("%lld",&m);for (n=0;m;m>>=1) t[++n]=m&1;printf("%lld",dfs(n,0,1));return 0;
}

转载于:https://www.cnblogs.com/MashiroSky/p/6399213.html

【bzoj3209】 花神的数论题相关推荐

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

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

  2. 2018.10.27 bzoj3209: 花神的数论题(数位dp)

    传送门 数位dpdpdp经典题. 题面已经暗示了我们按照二进制位来数位dpdpdp. 直接dpdpdp多少个数有111个111,222个111,333个111-, 然后快速幂算就行了. 于是我们枚举前 ...

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

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

  4. 数据范围BZOJ 3209(花神的数论题-数位统计+1,被数据范围坑了)

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 3209: 花神的数论题 Time Limit: 10 Sec Memory ...

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

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

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

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

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

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

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

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

  9. #数位dp#洛谷 4317 花神的数论题

    感谢dalao@小粉兔的帮助 dalao's 博客园,dalao's 洛谷博客 题目 设f[i]f[i]f[i]表示iii转化为二进制后1的个数,求∏i=1nf[i]\prod_{i=1}^nf[i] ...

最新文章

  1. 一周一论文(翻译)——[SIGMOD 2016] RDMA over Commodity Ethernet at Scale
  2. android构建过程
  3. 一个简单函数的反汇编分析
  4. 北京内推 | 阿里云视频处理算法团队招聘视频处理算法实习生
  5. 小白也能学会的 Git 常用指令指南
  6. uniapp 定时执行_ftp上传,完成ftp定时上传、下载只需3步
  7. [css] 你是怎么设计css sprites(精灵图)的?有哪些技巧?
  8. 分页类与前台和后台的调用方法
  9. IIS5IIS6IIS7的ASP.net 请求处理过程比较(转)
  10. postgresql 客户端登录配置
  11. dos 批处理 for知识学习
  12. 3 个主流 Java 微服务框架,各有特色
  13. tx2 安装 Anaconda
  14. 局域网打印机共享外网
  15. 计算机取消健,电脑取消撤销快捷键是什么_电脑健盘中的所有英文组合意思超值解释建议收藏......
  16. 黄教头第六周作业 一个基础的反射型xss
  17. c语言中复合语句不用花括号,【单选题】C语言中,可将一系列语句置于( )从而构成复合语句。 A. 一对尖括号\ \之间 B. 一对圆括号\( )\之间 C. 一对花括号 { } 之间 D....
  18. java 读取url获取的xml
  19. 尚硅谷 SpringCloud 第二季学习笔记【已完结】
  20. 小学生python编程教程-小学生python编程在线教育-小码精灵编程线上教育机构

热门文章

  1. 【译】表变量和临时表的比较(转)
  2. 获取局域网打印机列表
  3. r语言 编辑 d3.js_d3.js的语言介绍
  4. redis主从复制、高可用和集群
  5. 【HTTP协议】域名
  6. 如何禁止NumPy自动跳过数组的中心部分并仅打印角点
  7. (C++)1040 有几个PAT
  8. 连接centos7桌面方法
  9. 注册表----修改Win7登录界面
  10. 【畅谈百度轻应用】云时代·轻应用·大舞台