如果一个串能完全由其子串组成,那么这个串就不是本源串

求长度为n的本源串的个数。

由定义一个串如果不是本源串,那么他的长度一定是组成其子本源串的长度的(>=1) 整数倍。

那么长度为n的串总个数是2^n个

枚举n 的因子 长度为n的 本源串的个数就是2^n - a[k1]-a[k2]-..(k1 k2..是n的非n因子)。

因为n可以非常的大,所以需要快速幂,不能直接打表,求因子的复杂度是根号n

所以在线算,查,记忆化一下还是很快的。

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <iostream>
 4 #include <queue>
 5 #include <vector>
 6 #include <algorithm>
 7 #include <stack>
 8 #include <set>
 9 #include <map>
10 #include <math.h>
11 #define pb push_back
12 #define CLR(a) memset(a, 0, sizeof(a));
13 #define MEM(a, b) memset(a, b, sizeof(a));
14 #define fi first
15 #define se second
16
17 using namespace std;
18
19 typedef long long ll;
20
21 const int MAXN = 100000007;
22 const int MAXV = 207;
23 const int MAXE = 207;
24 const int INF = 0x3f3f3f3f;
25 const ll MOD = 2008;
26
27 int n;
28
29 ll mypow(ll t, int x)
30 {
31     ll tmp;
32     if (x == 0) return 1;
33     tmp = mypow(t, x >> 1) % MOD;
34     if (x & 1) tmp = (t*tmp*tmp) % MOD;
35     else tmp = (tmp*tmp) % MOD;
36     return tmp;
37 }
38
39 vector<int> getfac(int x)
40 {
41     vector<int> v;
42     for(int i = 1; i*i <= x; i++)
43     {
44         if (x % i == 0 && x != i)
45         {
46             v.pb(i);
47             if (x / i != i && x / i != x) v.pb(x/i);
48         }
49     }
50     return v;
51 }
52 ll a[MAXN];
53 ll fun(int x)
54 {
55     if (a[x] != 0) return a[x];
56     vector<int> v = getfac(x);
57     ll ret = mypow(2, x);
58     for (int i = 0; i < v.size(); i++)
59     {
60         a[v[i]] = fun(v[i]);
61         ret = (ret + MOD - a[v[i]]) % MOD;
62     }
63     return ret % MOD;
64 }
65
66 int main()
67 {
68     //freopen("in.txt", "r", stdin);
69     int m = 0;
70     while (~scanf("%d", &n))
71     {
72         if (a[n] == 0)
73         {
74             a[n] = fun(n) % MOD;
75         }
76         printf("%lld\n", a[n]);
77     }
78     return 0;
79 }

转载于:https://www.cnblogs.com/oscar-cnblogs/p/7615211.html

HDU 2197 本源串相关推荐

  1. hdu 2197 本原串 思维

    题目链接 思路: 这个题目的话我们可以从反面来考虑,题目要求我们求出本源串,那么非本源串的很好求,而且对于n位的二进制,一共有2^n种,假设当前长度为n,那么那些非本源串,可以拆成长度为x的串组成n, ...

  2. 数学--数论--HDU 2197 本原串 (推规律)

    由0和1组成的串中,不能表示为由几个相同的较小的串连接成的串,称为本原串,有多少个长为n(n<=100000000)的本原串? 答案mod2008. 例如,100100不是本原串,因为他是由两个 ...

  3. hdu 2197 本原串

    Problem Description 由0和1组成的串中,不能表示为由几个相同的较小的串连接成的串,称为本原串,有多少个长为n(n<=100000000)的本原串? 答案mod2008. 例如 ...

  4. hdu2197 本源串

    分析:长度为n的本源串=2^n-长度为n的非本源串,对于长度为n的非本源串一定是由长度为m的串循环k次得到的,所以m一定是n的约数,所以只需要求到所有n的约数长度构成的本源串个数即可(不能求构成串之和 ...

  5. HDU 2197:本原串

    描述 由0和1组成的串中,不能表示为由几个相同的较小的串连接成的串,称为本原串,有多少个长为n(n<=100000000)的本原串? 答案mod2008. 例如,100100不是本原串,因为他是 ...

  6. hdu 4545 魔法串 2013金山西山居创意游戏程序挑战赛——初赛(1)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4545 这题太坑了,小明的串可以任意删掉某个字符 这句话不知道大家是怎么理解的,我觉得应该是能够删除其中 ...

  7. HDU 1261 字串数

    字串数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  8. HDU 4545-魔法串

    魔法串 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submis ...

  9. hdu 1261 字串数

    指数型母函数应用!!! import java.math.*; import java.util.*; public class Main {     public static int []a;   ...

最新文章

  1. C/C++刷题知识点总结
  2. AI一分钟 | 传许家印已投资贾跃亭FF;腾讯将发布可接收微信的智能音箱;阿里确认研发自动驾驶技术...
  3. 机器学习的数据类型有哪几种?每种数据类型对应的操作有哪些?为什么?
  4. android socket通信如何抓取,安卓Socket通信实例(客户端、服务端)
  5. 框架前期准备篇之AutoFac常见用法总结 转载
  6. php7.0 yield,PHP7中生成器的新特性 yield-from amp;amp; return-values
  7. 计算机英语一级考试试题,全国计算机一级考试试题及答案
  8. 【springboot 踩坑记录】拦截器中无法注入bean
  9. 07-霸道的Oracle内存使用
  10. html中radio单选按钮控件标签用法解析及如何设置默认选中
  11. InfluxDB简介,InfluxDB的基本操作
  12. 第三章 PCB 封装库绘制
  13. R语言之主成分分析和因子分析
  14. face_recognition常用方法
  15. formatter格式说明
  16. 利用Matlab筛选给定条件的数据
  17. oracle的set函数,setex(oracle trunc函数)
  18. AFM(弹性模量)—文献专项阅读
  19. 年薪50万的Python工程师曝光公司面试题
  20. OpenCV图像处理总结 ——用opencv给图片换背景色为例

热门文章

  1. Excel.Application使用手册
  2. 异物堆积,导致手机Type-C接口充电不畅、无法充电的问题
  3. STM32 用RS485进行半双工通信出现的问题
  4. python语言入门h_python教程,pythonh学习线路图?
  5. Win10切换共享文件夹账号
  6. npm install 很慢、卡死怎么解决
  7. 我在用的翻译软件,微软翻译,网易有道词典
  8. input禁用样式修改 input disabled样式禁用方法及样式isabled样式禁用方法及样式
  9. 学习LSM(Linux security module)之四:一个基于LSM的简单沙箱的设计与实现
  10. 「企企通」完成Pre-D轮融资,加速采购供应链工业软件和 SaaS 网络生态构建