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

题意:中文题。

思路:和普通数位dp一样,这里转换成二进制,然后记录有几个一。

统计的时候乘起来就好了。

代码:

#include"cstdlib"
#include"cstdio"
#include"cstring"
#include"cmath"
#include"stack"
#include"algorithm"
#include"iostream"
using namespace std;
long long dp[66][66];
int m=10000007;
int num[66];
long long dfs(int site,int n,int f)
{if(site==0) return n?n:1;      //注意是乘积。所以0个1的时候返回1if(!f&&dp[site][n]!=-1) return dp[site][n];int len=f?num[site]:1;long long ans=1;  //ans 的初值是1for(int i=0;i<=len;i++){if(i==0) ans*=dfs(site-1,n,f&&i==len);else ans*=dfs(site-1,n+1,f&&i==len);if(ans>=m) ans%=m;}if(!f) dp[site][n]=ans%m;return ans%m;
}
long long solve(long long x)
{int cnt=0;while(x){num[++cnt]=x%2;x/=2;}return dfs(cnt,0,1)%m;
}
int main()
{long long n;memset(dp,-1,sizeof(dp));while(scanf("%lld",&n)!=-1){printf("%lld\n",solve(n));}return 0;
}

posted on 2017-06-10 10:17 mthoutai 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/mthoutai/p/6977992.html

[数位dp] bzoj 3209 花神的数论题相关推荐

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

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

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

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

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

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

  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. #数位dp#洛谷 4317 花神的数论题

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

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

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

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

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

最新文章

  1. Netty实战 IM即时通讯系统(四)服务端启动流程
  2. java简易日历程序报告_简单的日历小程序(java编写)
  3. js判断html存不存在某个属性,javascript如何判断对象是否存在某属性?
  4. java靜態常量_Java靜態變量、靜態常量、靜態方法
  5. html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码(3)
  6. 用树莓派搭建全功能NAS服务器(02):Docker用法下载机配置
  7. IDEA 启动项目报错 Shorten the command line via JAR manifest or via a classpath file and rerun
  8. oracle 截断数据库,Oracle截断表
  9. 甬台温、温福铁路动车组时刻表
  10. 淘宝怎么寄东西到日本?如何在日本购买国内淘宝上的物品呢?
  11. 高通9xxx系列模块modem射频 RF LTE B41频段踩过的坑
  12. hahabet05-com:大数据与数据科学课程体系--哈哈电竞
  13. Wi-Fi®安全状况
  14. 维基解密披露CIA Grasshopper远程木马套件 Windows预安装环境、Carberp财务恶意软件的计算机驻留方法都用上了...
  15. 图像处理 有损压缩变换-离散余弦变换
  16. 2022最新酒桌小游戏小程序源码+附带流量主
  17. 软考零基础至少需要准备多久啊?
  18. jquery的在线api
  19. 用jQuery控制键盘上下左右键切换选择元素
  20. 移动**21*设置无法接通_为什么会提示“您拨打的电话暂时无法接通”?

热门文章

  1. vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
  2. winre drv分区干嘛用的_都2020年了,还在给硬盘分区?看完你就知道有没有必要了...
  3. LeetCode 1658. 将 x 减到 0 的最小操作数(哈希)
  4. LeetCode 243. 最短单词距离
  5. POJ 1442 Black Box(大小堆,求第K小的元素)
  6. sql 拆分_实践参考:MySQL架构设计从开发规范、选型、拆分到减压实战指南
  7. Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
  8. cron 每周一执行_详解定时任务中的 cron 表达式
  9. 利用python转换图片格式
  10. 大型网站电商网站架构案例和技术架构的示例