并不难,但是因为各种 SB 原因调了 1145141919810min(悲

我们会发现 \(\operatorname{sum}\) 其实很小,顶多就 \(50\),这启发我们统计每个 \(\operatorname{sum}\) 取值的数量。因此令 \(f_{i}\) 为满足 \(\operatorname{sum}(o) = i\) 的 \(o\) 的数量。

显而易见数位 dp 可以做。

//SIXIANG
#include <iostream>
#include <cstring>
#define MAXN 100000
#define int long long
#define QWQ cout << "QWQ" << endl;
using namespace std;
const int Mod = 10000000 + 7;
int qpow(int n, int m) {
int res = 1;
while(m) {
if(m & 1) res = res * n % Mod;
n = n * n % Mod, m >>= 1;
}
return res;
}
int f[200][50][2][2], tot, arr[MAXN + 10];
int pika(int i, int s, int limit, int lead, int num, int o) {
if(!i) return (s == o);
if(f[i][s][limit][lead] != -1) return f[i][s][limit][lead];
int lim = ((limit) ? (arr[i]) : 1), rest = 0;
for(int p = 0; p <= lim; p++)
rest += pika(i - 1, s + (p == 1), limit && (p == arr[i]), lead && (!p), (num << 1) + p, o);
f[i][s][limit][lead] = rest;
return rest;
}
int solve(int x) {
do {
arr[++tot] = x % 2;
x >>= 1;
} while(x);
int mul = 1; for(int p = 1; p <= 49; p++) {
memset(f, -1, sizeof(f));
int res = pika(tot, 0, 1, 1, 0, p);
mul = mul * qpow(p, res) % Mod;
}
return mul;
}
signed main() {
int n; cin >> n;
cout << solve(n) << endl;
}

最新文章

  1. Netty构建分布式消息队列实现原理浅析
  2. php内核分析(四)-do_cli
  3. 2017年1月2日 星期一 --出埃及记 Exodus 21:28
  4. MiniProfiler.3.0.10 用于MVC4.0中不能显示SQL语句
  5. linux文件系统操作——底层文件访问
  6. [转载]织梦CMS首页调用分类信息栏目及列表方法
  7. jstl c标签 ”test does not support runtime expressions“
  8. C-Free 5.0 注册码
  9. linux学习笔记-开机流程与主引导分区(MBR)
  10. 导出不带.svn的文件夹或者是不含.class的文件
  11. 【Python】数据库练习-2
  12. Class AB与Class D功放
  13. FI配置清单-概要
  14. Java数组、集合的三种遍历方式(包懂)
  15. 完善_IO, _IOR, _IOW, _IOWR 宏的用法与解析
  16. 记录一次OOM排查经历(一)
  17. iOS - Bundle 资源文件包生成和常见资源文件使用
  18. python3之日期和时间(转载)
  19. 关于UML图形/图示数量总结
  20. 【bzoj1444】[Jsoi2009]有趣的游戏

热门文章

  1. -webkit-box-orient:vertical 编译报错之autoprefixer问题
  2. C++使用ODBC连接数据库遇到的问题
  3. 【Spark】Day02:Spark-Core:RDD概述、RDD编程(转换算子、Action)、序列化、依赖关系、持久化、数据读取保存、累加器、广播变量、top10、转化率
  4. Windows10下python3和python2同时安装(三)VS 2013配置python环境
  5. 【基于OpenAI的ChatGPT】搭建属于自己的微信聊天机器人(附带注册英国手机号码方式)
  6. 实施 GitOps 的三个关键步骤
  7. JVM常用调优参数
  8. [数据结构]单向链表及其基本操作(C语言)
  9. overflow_auto在flex_1的容器失效
  10. Python AI小项目打包通关:Pyinstaller和Wix都用上了