题目

智力下降严重

显然要反演了呀

首先必须满足\(x|y\),否则答案是\(0\)

我们枚举这个数列的\(gcd\)是\(d\)或者\(d\)的倍数

于是答案就是

\[\sum_{x|d}[d|y]\mu(\frac{x}{d})g(\frac{y}{d})
\]

\(g(d)\)表示和为\(d\)的正整数数列的数量,显然就是插一下板,于是\(g(d)=\sum_{i=1}^d\binom{d-1}{i-1}=2^{d-1}\)

代码

  1. #include<bits/stdc++.h>
  2. #define re register
  3. #define LL long long
  4. inline int read() {
  5. char c=getchar();int x=0;while(c<'0'||c>'9') c=getchar();
  6. while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+c-48,c=getchar();return x;
  7. }
  8. const int mod=1e9+7;
  9. const int maxn=1e5+5;
  10. inline int ksm(int a,int b) {
  11. int S=1;
  12. for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) S=1ll*S*a%mod;
  13. return S;
  14. }
  15. int n,m,T,ans;
  16. int f[maxn],p[maxn>>1],mu[maxn];
  17. inline int getmu(int x) {
  18. if(x<=T) return mu[x];int now=0;
  19. for(re int i=1;i<=p[0]&&x!=1;++i) {
  20. if(x%p[i]) continue;
  21. x/=p[i];now^=1;
  22. if(x%p[i]==0) return 0;
  23. }
  24. if(x!=1) now^=1;
  25. if(!now) return 1;return -1;
  26. }
  27. inline void add(int i) {
  28. if(i%n) return;
  29. int x=getmu(i/n);
  30. if(x==1) ans=(ans+ksm(2,m/i-1))%mod;
  31. if(x==-1) ans=(ans-ksm(2,m/i-1)+mod)%mod;
  32. }
  33. int main() {
  34. scanf("%d%d",&n,&m);
  35. if(m%n) {puts("0");return 0;}
  36. T=std::ceil(std::sqrt(m/n));f[1]=mu[1]=1;
  37. for(re int i=2;i<=T;i++) {
  38. if(!f[i]) p[++p[0]]=i,mu[i]=-1;
  39. for(re int j=1;j<=p[0]&&p[j]*i<=T;++j) {
  40. f[p[j]*i]=1;if(i%p[j]==0) break;
  41. mu[p[j]*i]=-1*mu[i];
  42. }
  43. }
  44. for(re int i=1;i*i<=m;++i) {
  45. if(m%i) continue;
  46. add(i);if(m/i!=i) add(m/i);
  47. }
  48. printf("%d\n",ans);
  49. return 0;
  50. }

【CF900D】Unusual Sequences的更多相关文章

  1. 【CF900D】Unusual Sequences 容斥(莫比乌斯反演)

    [CF900D]Unusual Sequences 题意:定义正整数序列$a_1,a_2...a_n$是合法的,当且仅当$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...+a_n= ...

  2. 【BZOJ-4059】Non-boring sequences 线段树 + 扫描线 (正解暴力)

    4059: [Cerc2012]Non-boring sequences Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 440  Solved: 16 ...

  3. 【BZOJ4059】Non-boring sequences

    Solution 记序列为\(a\),计算出与\(a_i\)相等的前一个元素的位置\(pre_i\),以及后一个元素的位置\(nex_i\),显然,对于那些左端点处于\((pre_i,i]\)以及右端 ...

  4. 【atcoder】Two Sequences [arc092 D](思维题)

    题目传送门:https://arc092.contest.atcoder.jp/tasks/arc092_b 这场arc好难啊...这场感觉不像正常的arc...其实这道题还可以更早写出来的,但是蒟蒻 ...

  5. 【BZOJ4059】Non-boring sequences(分析时间复杂度)

    题目: BZOJ4059 分析: 想了半天没什么想法,百度到一个神仙做法-- 设原数列为 \(a\),对于每一个 \(i\) 求出前一个和后一个和 \(a_i\) 相等的位置 \(pre[i]\) 和 ...

  6. 【HDU6647】Bracket Sequences on Tree(树Hash 树上Dp)

    题目链接 大意 给出一颗树,按下列方式生成一个括号序列. function dfs(int cur, int parent): print('(') for all nxt that cur is a ...

  7. 论文阅读(Weilin Huang——【AAAI2016】Reading Scene Text in Deep Convolutional Sequences)

    Weilin Huang--[AAAI2016]Reading Scene Text in Deep Convolutional Sequences 目录 作者和相关链接 方法概括 创新点和贡献 方法 ...

  8. 【LeetCode】Repeated DNA Sequences 解题报告

    [题目] All DNA is composed of a series of nucleotides abbreviated as A, C, G, and T, for example: &quo ...

  9. 【转】Python数据类型之“序列概述与基本序列类型(Basic Sequences)”

    [转]Python数据类型之“序列概述与基本序列类型(Basic Sequences)” 序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主 ...

随机推荐

  1. swiper缩略图active切换失灵的解决思路

    报错信息:Cannot read property ‘indexOf’ of undefined swiper. 来源是swiper.min.js,首先检查自己写的js配置是否有误,没有就调试插件源代 ...

  2. ruby on rails笔记

    一.新建rails项目步骤: 1.生成新项目 rails new demo cd demo vi Gemfile 末尾end前增加   gem 'execjs'   gem 'therubyracer ...

  3. NOIp2018集训test-10-15 (bike day1)

    B 君的第一题 求斐波那契数列模n的循环节. 1.暴力bsgs,毕姥爷好像说循环节最大是6*n还是多少的,反之比较小,直接bsgs这题是可以过的.但是我非常蠢重载运算符的时候把相等返回成了小于,然后根 ...

  4. 几道noip2018提高组初赛的题

    以下做法来均自llj @Nicodafagood 一.单项选择题 7. 在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望 长度是( ).A. 1 / 2B. 1 / 3C. 2 ...

  5. faster-rcnn代码阅读-roi-data层

    这一节讲述roi-data层,和这一层有关的结构图如下: roi-data层的prototxt定义如下: layer { name: 'roi-data' type: 'Python' bottom: ...

  6. Java-Class-C:org.springframework.web.client.RestTemplate

    ylbtech-Java-Class-C:org.springframework.web.client.RestTemplate 1.返回顶部 1. org.springframework.web.c ...

  7. LeetCode 817. Linked List Components (链表组件)

    题目标签:Linked List 题目给了我们一组 linked list, 和一组 G, 让我们找到 G 在 linked list 里有多少组相连的部分. 把G 存入 hashset,遍历 lin ...

  8. sizeof,真正终结版GCC与VC

    在VC6.0中sizeof结果是16.我电脑上装了个linux虚拟机,在虚拟机上GCC中结果是12, 恩不同编译器默认对齐数值不一样. VC 默认为 8 gcc 默认为 4 有个编译参数控制对齐. # ...

  9. Spring 源码学习——注册 BeanDefinition

    BeanFactory BeanFactory 是 Spring IoC 容器的具体实现,是 Spring 容器的核心接口. DefaultListableBeanFactory XmlBeanFac ...

  10. k8s 对接glusterfs存储

    service 与 endpoint 是通过namespace相同,name相同,相互关联的 创建endpoint [root@k8s-master glusterfs]# cat glusterfs ...