首页 > TAG信息列表 > P4317

[题解]luogu_P4317_花神的数论题(数位dp

虽然是二进制但是和普通的数位dp没什么差别,统计1出现次数的乘积不如统计每个出现次数的数量,然后对应快速幂一下,转化成了平时熟悉的方案数, 状态设计:dfs里传什么参就开哪些状态,可以包括是否达到上限(lmt)之类的 #pragma GCC optimize(19260817)#include<bits/stdc++.h>#define ll l

P4317 花神的数论题

传送门 考虑把 $sum$ 值相同的一起用快速幂计算 枚举 $sum=i$ ,然后可以用数位 $dp$ 求有多少小于 $n$ 的二进制下恰好有 $i$ 个 $1$ 的数的个数 注意不要把个数取模,因为个数是幂次 #include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using

洛谷P4317 花(fa)神的数论题(数位dp解法)

日常废话: 完了高一开学第二天作业就写不完了药丸(其实第一天就写不完了) 传传传传传送 显然爆搜肯定过不了这道题但是有60分 我们注意到在[1,n]中,有着相同的1的个数的数有很多。若有x个数有i个1,则对答案产生的贡献是\(i^x\)。考虑到\(n\leq10^50\),所以最多只有50个1,看起来能够接受