[数位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;
}
转载于:https://www.cnblogs.com/mthoutai/p/6977992.html
[数位dp] bzoj 3209 花神的数论题相关推荐
- 数据范围BZOJ 3209(花神的数论题-数位统计+1,被数据范围坑了)
PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘.目前又不当COO,还是得用心记代码哦! 3209: 花神的数论题 Time Limit: 10 Sec Memory ...
- bzoj 3209: 花神的数论题 喵哈哈村的秘境探险(四)
3209: 花神的数论题 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 2169 Solved: 1006 [Submit][Status][Di ...
- bzoj 3209 花神的数论题 —— 数位DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3209 算是挺简单的数位DP吧,但还是花了好久才弄明白... 又参考了博客:https://b ...
- bzoj 3209: 花神的数论题
限于本人DP处于背包--水平,不组声(就是对神奇的数位DP,找出j个1的有多少个,然后j的多少个次方就行) 1 #include<bits/stdc++.h> 2 #define N 10 ...
- bzoj3209:3209: 花神的数论题
觉得还是数位dp的那种解题形式但是没有认真的想,一下子就看题解.其实还是设置状态转移.一定要多思考啊 f[i][j]=f[i-1][j]+g[i-1][j] g[i][j]=f[i-1][j-1]+g ...
- bzoj3209 花神的数论题——数位dp
题目大意: 花神的题目是这样的 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)-sum(N) 的乘积. 要对1000 ...
- #数位dp#洛谷 4317 花神的数论题
感谢dalao@小粉兔的帮助 dalao's 博客园,dalao's 洛谷博客 题目 设f[i]f[i]f[i]表示iii转化为二进制后1的个数,求∏i=1nf[i]\prod_{i=1}^nf[i] ...
- 花神的数论题(这题...哎。数位dp咋就这么 not naive 呢)
题意简介 没什么好说,就是让你求出 1 ~ n 之间每个数转化为二进制后 '1' 的个数,然后乘起来输出积 题目分析 emmmm.... 两种解法(同是 $O(\log^2 N)$ 的算法,组合数效率 ...
- BZOJ3209(luogu 4317)花神的数论题题解
题目 设 sum(i) 表示 i 的二进制表示中 1 的个数.给出一个正整数 N ,花神要问你 派(Sum(i)),也就是 sum(1)-sum(N) 的乘积(n<=1e15). 分析 好吧,一 ...
最新文章
- Netty实战 IM即时通讯系统(四)服务端启动流程
- java简易日历程序报告_简单的日历小程序(java编写)
- js判断html存不存在某个属性,javascript如何判断对象是否存在某属性?
- java靜態常量_Java靜態變量、靜態常量、靜態方法
- html 车牌号输入代码,html中车牌号省份简称输入键盘的示例代码(3)
- 用树莓派搭建全功能NAS服务器(02):Docker用法下载机配置
- IDEA 启动项目报错 Shorten the command line via JAR manifest or via a classpath file and rerun
- oracle 截断数据库,Oracle截断表
- 甬台温、温福铁路动车组时刻表
- 淘宝怎么寄东西到日本?如何在日本购买国内淘宝上的物品呢?
- 高通9xxx系列模块modem射频 RF LTE B41频段踩过的坑
- hahabet05-com:大数据与数据科学课程体系--哈哈电竞
- Wi-Fi®安全状况
- 维基解密披露CIA Grasshopper远程木马套件 Windows预安装环境、Carberp财务恶意软件的计算机驻留方法都用上了...
- 图像处理 有损压缩变换-离散余弦变换
- 2022最新酒桌小游戏小程序源码+附带流量主
- 软考零基础至少需要准备多久啊?
- jquery的在线api
- 用jQuery控制键盘上下左右键切换选择元素
- 移动**21*设置无法接通_为什么会提示“您拨打的电话暂时无法接通”?
热门文章
- vue垂直布局_vue实现长图垂直居上 vue实现短图垂直居中
- winre drv分区干嘛用的_都2020年了,还在给硬盘分区?看完你就知道有没有必要了...
- LeetCode 1658. 将 x 减到 0 的最小操作数(哈希)
- LeetCode 243. 最短单词距离
- POJ 1442 Black Box(大小堆,求第K小的元素)
- sql 拆分_实践参考:MySQL架构设计从开发规范、选型、拆分到减压实战指南
- Qt利用avilib实现录屏功能_openlayers6结合geoserver利用WFS服务实现图层编辑功能(附源码下载)...
- cron 每周一执行_详解定时任务中的 cron 表达式
- 利用python转换图片格式
- 大型网站电商网站架构案例和技术架构的示例