Codeforces Round #738 (Div. 2) 莫比乌斯函数+前缀和背包

#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define dep(i,a,b) for(int i=a;i>=b;i--)
#define db double
#define V vector
#define pb push_back
#define N 100007
using namespace std;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const ll mod = 998244353;
inline int read()
{int x=0,f=1;char ch=getchar();while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}return x*f;
}
int mu[N],ck[N],prime[N],tot;inline void init(){mu[1]=1;for(int i=2;i<N;i++){if(!ck[i]) prime[++tot]=i,mu[i] = -1;  for(int j=1;j<=tot&&i*prime[j]<N;j++){int now=i*prime[j];ck[now]=1;if(i%prime[j]) mu[now]=-mu[i];else{mu[now]=0;break; //出现平方因子}}   }
}
int t,n,m;
struct node{int l,r;
}a[57],aa[57];
ll sum[N],dp[55][N];
ll DP(int d){int mm=m/d;for(int i=1;i<=n;i++){aa[i].l=(a[i].l-1)/d+1;aa[i].r=a[i].r/d;}sum[0]=0;for(int i=1;i<=n;i++){if(aa[i].l>aa[i].r) return 0;for(int j=1;j<=mm;j++){if(i==1&&j>=aa[i].l&&j<=aa[i].r) dp[i][j]=1;else if(i==1) dp[i][j]=0;else{int le=max(0,j-aa[i].r-1),ri=max(0,j-aa[i].l);dp[i][j]=(sum[ri]-sum[le]+mod)%mod;}}for(int j=1;j<=mm;j++) sum[j]=(sum[j-1]+dp[i][j])%mod;}return sum[mm];
}
int main(){t=1;while(t--){scanf("%d%d",&n,&m);init();for(int i=1;i<=n;i++){a[i].l=read(),a[i].r=read(); }ll ans=0;for(int d=1;d<=m;d++){if(!mu[d]) continue;ans=(ans+DP(d)*mu[d]+mod)%mod;}printf("%lld\n",ans);}
}

Codeforces Round #738 (Div. 2) E相关推荐

  1. Codeforces Round #738 (Div. 2)

    Codeforces Round #738 (Div. 2) 文章目录 A 题解: 代码: B 题意: 题解: 代码: C 题意: 题解: 代码: D1 题意: 题解: 代码: 题号 题目 知识点 A ...

  2. Codeforces Round #738 (Div. 2) A--D1

    原题戳这里Codeforces Round #738 (Div. 2) A. Mocha and Math 题目大意 通过对某个区间内的数进行题目所给操作 希望最小化序列中的最大值 思路 万恶的位运算 ...

  3. Codeforces Round #738 (Div. 2)——C. Mocha and Hiking

    传送 问题描述: 1. 已知 (i)~(i+1) 可行 (1<=i<=n-1) 2. 给出 (i)~(n+1)的关系 (1<=i<=n)  a[i]=0:(i)~(n+1) 可 ...

  4. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  5. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  6. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  7. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  8. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

  9. Codeforces Round #701 (Div. 2) A ~ F ,6题全,超高质量良心题解【每日亿题】2021/2/13

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A - Add and Divide B - Replace and Keep Sorted C ...

最新文章

  1. Quartz.NET介绍
  2. 计算机二级c常用函数,计算机等级考试二级C语言的常用库函数试题
  3. 教师提升微能力_分层分类培训,助力学校教师团队能力提升
  4. win7驱动程序未经签名可以使用吗_如何解决高校机房计算机新CPU不支持win7系统的问题...
  5. [js] json和对象有什么区别?
  6. nginx源码分析—模块及其初始化
  7. iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理
  8. 笔记本 win7 装vs2010 报错 注册表 拒绝访问等
  9. 线性结构 —— 分块算法 —— 分块九讲
  10. 阶梯博弈(尼姆博奕进阶)
  11. 力扣-56 合并区间
  12. 关于 Backup Exec 中的介质
  13. 【漏洞公告】高危:Windows系统 SMB/RDP远程命令执行漏洞
  14. 内存高效的可逆 GAN 网络:Reversible GANs for Memory-efficient Image-to-Image Translation
  15. nuxt.js 全局 js_使用nuxt js在vuetify js中进行高级颜色管理
  16. 牧云Webshell检测神器
  17. jsp:使用request为页面添加静态数据。
  18. mysql被替换的文件如何恢复吗_文件被覆盖替换了怎么找回来
  19. Lucene实现自定义中文同义词分词器
  20. CCNA-基础配置(1)

热门文章

  1. 【硬刚大数据】从零到大数据专家之数据仓库体系建模实施注意事项小总结
  2. vi操作(个人整理)
  3. 移动手机停机保留号码吗?停机后还收钱吗
  4. php java优劣_PHP开发和JAVA开发网站的优劣对比
  5. 详解RGB和YUV色彩空间转换
  6. 常用的表格检测识别方法-表格区域检测方法(上)
  7. QQ 珊瑚虫 飘云
  8. 对日软件外包的一点感受
  9. 网络--juniper防火墙抓包处理故障
  10. ETO的公开赛T3《寻星》 题解(BY 超級·考場WA怪 )