着重考虑下
s
u
m
(
i
)
sum(i)
sum(i)这个东西,二进制数表示情况下1的数量,如果限定的是位数而不是
N
N
N的话可以去考虑搞一下组合数学.
s
u
m
(
i
)
sum(i)
sum(i)的数量太多了,考虑下分组来计算
f
(
i
)
:
有
f
(
i
)
个数字
,
对应的
s
u
m
值是
i
f(i):有f(i)个数字,对应的sum值是i
f(i):有f(i)个数字,对应的sum值是i
a
n
s
=
∏
i
f
(
i
)
ans=\prod i^{f(i)}
ans=∏if(i) 然而想了半天似乎并不会求这个东西,学了一天数位dp后回来写这个题 我去,和我想象的又不太一样,第一题写的是十进制意义下的一个题目,这个题是二进制的 学成归来,运用下数位dp的思路考虑下这个问题. 快有好几天没写,回顾下要做的东西: 需要求解一个函数
f
(
i
)
:
i
个
1
出现的次数
f(i):i个1出现的次数
f(i):i个1出现的次数 状态设置为
d
p
(
c
u
r
,
n
u
m
,
t
o
p
)
dp(cur,num,top)
dp(cur,num,top),在选第
c
u
r
cur
cur个数字,已经选了
n
u
m
num
num个1,是否贴着上界
t
o
p
top
top 然而这个题最大的坑点是:你
d
f
s
dfs
dfs算出来的是一个指数,指数是不能取模的,就像快速幂里面
p
w
(
a
,
b
)
pw(a,b)
pw(a,b)
取模是只能对底数取模
,
因为
a
b
%
m
o
d
!
=
a
b
%
m
o
d
取模是只能对底数取模,因为a^{b\%mod}!=a^b\%mod
取模是只能对底数取模,因为ab%mod!=ab%mod 然后
d
f
s
dfs
dfs过程不要取模就可以了
/*
I don't wanna be left behind,Distance was a friend of mine.
Catching breath in a web of lies,I've spent most of my life.
Catching my breath letting it go turning my cheek for the sake of this show
Now that you know this is my life I won't be told what's supposed to be right
Catch my breath no one can hold me back I ain't got time for that.
*/
#include
using namespace std;
const int maxn = 50+5;
const int INF = 1e9+7;
typedef long long ll;
typedef pair pii;
#define all(a) (a).begin(), (a).end()
#define pb(a) push_back(a)
ll dp[maxn][maxn][2];
int a[maxn];ll f[maxn];
ll mod = 1e7+7;
ll dfs(int cur,int num,bool top,int limit){
if(cur==0){
if(num==limit) return 1;
return 0;
}
ll &ans = dp[cur][num][top];
if(ans!=-1) return ans;
ans = 0;
int bound = top?a[cur]:1;
for(int i=0;i>=1;
for(int i=1;i>=1;a = a*a%mod;
}
return ans%mod;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll n;cin>>n;
solve(n);
ll ans = 1;
for(int i=1;i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?