Educational Codeforces Round 138 (Rated for Div. 2)

D. Counting Arrays

题意

给定长度为nnn的数组aaa,若gcd(ai,i)=1gcd(ai, i) = 1gcd(ai,i)=1(元素与其下标互质)则可以删除aiaiai,其后的元素顺序前移直到数组为空。将删除的元素的下标按删除顺序排成一列这就是删除序列bbb。当数组aaa具有两种及以上的不同删除序列时,称数组aaa具有二重性。
求长度为111~nnn的数组 ,数组元素1<=ai<=m1<=ai<=m1<=ai<=m,有多少数组具有二重性。

分析

首先题目询问的是长度分别为1,2,3,……,n1,2,3,……,n1,2,3,……,n的数组,而不只是长度为nnn的数组,比赛时样例的26我死活算不出来 。
因为数字111与所有数都互质gcd(1,x)=1gcd(1,x) = 1gcd(1,x)=1 所以很容易想到所有的数组都至少有一种删除序列即b=(1,1,1,……,1)b = (1,1,1,……,1)b=(1,1,1,……,1),所以我们只需要再找到一种删除方式就可以构造出二重性。
求二重性的个数发现有困难,但是正难则反,我们可以考虑求出所有方案sumsumsum - 没有二重性的数组数量resresres。

开始求不具有二重性的数组数量,即我们需要构造出删除序列只有111的数组。考虑初始数组元素aiaiai,要让删除序列全为111那么不仅所有的gcd(ai,i)!=1gcd(ai,i) != 1gcd(ai,i)!=1 并且在删除过程中aiaiai在向前移动过程中也要保持gcd(ai,j)!=1(2<=j<=i)gcd(ai,j) != 1 (2 <= j <= i)gcd(ai,j)!=1(2<=j<=i) ,也就是说aiaiai的质因数要包含222~iii之间所有的质数 ,而mmm最大为101210^{12}1012最多包含十几个质因子,也就是说当数组长度大于一定以后(大概404040),就不可能有不具有二重性的数组了。

最后我们可以递推的方式求解,然后用累加的方法解决数组长度为111~nnn的问题。

代码

#include <iostream>
#include <algorithm>
using namespace std;
#define ll long long
const int N = 3e5 + 10, mod = 998244353;
ll n,m,p[50] = {0,0,2,3,0,5,0,7,0,0,0,11,0,13,0,0,0,17,0,19,0,0,0,23,0,0,0,0,0,29,0,31,0,0,0,0,0,37,41,43,47};//50以内的质数
int main()
{cin >> n >> m;ll sum = 0, sum1 = 1;for(int i = 1; i <= n; i ++){sum1 = sum1 * (m % mod) % mod;//sum1是长度为i的数组的总方案sum = (sum + sum1) % mod;//sum是累加结果}ll res = m % mod, res1 = m % mod, k = 1;for(int i = 2; i <= n; i ++){if(p[i]){if(k * i <= m) k = k * i;else break;}res1 = res1 * (m / k % mod) % mod;//res1是长度为i的数组没有二重性的总方案res = (res + res1) % mod;//res是累加结果}printf("%lld\n",(sum + mod - res) % mod);//sum - res为结果return 0;
}

更新:
D题10.21,E题待更新。

Educational Codeforces Round 138 (Rated for Div. 2) D相关推荐

  1. Educational Codeforces Round 138 (Rated for Div. 2)-赛后总结

    Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces 总结一个教训就是不要心急,特别是对于一些题目, ...

  2. Educational Codeforces Round 138 (Rated for Div. 2) A~D

    比赛链接:Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces 目录 A. Cowardly Roo ...

  3. Educational Codeforces Round 138 (Rated for Div. 2) C. Number Game 解题报告

    原题链接: Problem - C - Codeforces 题目描述: Alice and Bob are playing a game. They have an array of positiv ...

  4. Educational Codeforces Round 138 (Rated for Div. 2)

    文章目录 一.A. Cowardly Rooks 二.B - Death's Blessing 三.C - Number Game 四.D - Counting Arrays 四.E - Cactus ...

  5. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  6. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  7. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  8. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  9. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

最新文章

  1. Android5.1.1源码 - zygote fork出的子进程如何权限降级
  2. one microblog from 任志强
  3. 互联网企业安全高级指南3.6 需要自己发明安全机制吗
  4. 使用OVF部署虚拟机
  5. [Ext JS 4] 实战之Chart, Column Chart 定制颜色
  6. oracle11g增加备库,oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
  7. HIve map jion的原理、操作和使用场景
  8. 云和物联网(IoT)是不可分割的,因为物联网需要云来运行和执行
  9. hdu-acm steps Common Subsequence
  10. 数字信号第二章freqz函数作业
  11. java中instanceof是什么意思_java 中的instanceof用法详解及instanceof是什么意思(推荐)...
  12. “天池”淘宝用户消费行为分析——sql
  13. excel中常用函数index、match、row、column的用法
  14. 认识一下netlogon服务
  15. SpringCloud—笔记(一)零基础篇
  16. php上传文件自动解压,PHP自动解压上传的rar文件
  17. 01组团队项目-Alpha冲刺-6/6
  18. 日常笔记之wifi定频及测试
  19. ElasticSearch某个节点与集群失联这个过程会发生什么?
  20. Motion Factory特效制作AE脚本五套 Particle/ActionFX/Glitch/TypeBuilder/Hi-Tech HUD

热门文章

  1. 小孩子竟然也会得抑郁症,孩子得抑郁症怎么办?
  2. 墨竹:黄金缺口有待回补,枢轴点不破空头依旧强劲?
  3. 选择电阻要考虑哪些点?
  4. 4.4.5 信道均衡(二)
  5. 软件测试 | 期末复习——测试基础【黑盒测试用例设计】
  6. 和口袋购物王珂聊移动电商的未来
  7. 一款题库及试卷管理系统的设计与开发(java 源代码)
  8. win10语言下载0x8024500C,教你解决win10应用商店错误代码0x8024500c的故障
  9. siesta在Linux运行,请教,为什么siesta编译中没报错,然而运行的时候跑不起来呢 - 第一原理 - 小木虫 - 学术 科研 互动社区...
  10. 精易模块3.46 网页_访问u命令