Educational Codeforces Round 138 (Rated for Div. 2) D
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相关推荐
- Educational Codeforces Round 138 (Rated for Div. 2)-赛后总结
Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces 总结一个教训就是不要心急,特别是对于一些题目, ...
- Educational Codeforces Round 138 (Rated for Div. 2) A~D
比赛链接:Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces 目录 A. Cowardly Roo ...
- 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 ...
- Educational Codeforces Round 138 (Rated for Div. 2)
文章目录 一.A. Cowardly Rooks 二.B - Death's Blessing 三.C - Number Game 四.D - Counting Arrays 四.E - Cactus ...
- Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...
- Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...
- Educational Codeforces Round 37 (Rated for Div. 2) 1
Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...
- 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这个时候两 ...
- 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, ...
最新文章
- Android5.1.1源码 - zygote fork出的子进程如何权限降级
- one microblog from 任志强
- 互联网企业安全高级指南3.6 需要自己发明安全机制吗
- 使用OVF部署虚拟机
- [Ext JS 4] 实战之Chart, Column Chart 定制颜色
- oracle11g增加备库,oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)
- HIve map jion的原理、操作和使用场景
- 云和物联网(IoT)是不可分割的,因为物联网需要云来运行和执行
- hdu-acm steps Common Subsequence
- 数字信号第二章freqz函数作业
- java中instanceof是什么意思_java 中的instanceof用法详解及instanceof是什么意思(推荐)...
- “天池”淘宝用户消费行为分析——sql
- excel中常用函数index、match、row、column的用法
- 认识一下netlogon服务
- SpringCloud—笔记(一)零基础篇
- php上传文件自动解压,PHP自动解压上传的rar文件
- 01组团队项目-Alpha冲刺-6/6
- 日常笔记之wifi定频及测试
- ElasticSearch某个节点与集群失联这个过程会发生什么?
- Motion Factory特效制作AE脚本五套 Particle/ActionFX/Glitch/TypeBuilder/Hi-Tech HUD
热门文章
- 小孩子竟然也会得抑郁症,孩子得抑郁症怎么办?
- 墨竹:黄金缺口有待回补,枢轴点不破空头依旧强劲?
- 选择电阻要考虑哪些点?
- 4.4.5 信道均衡(二)
- 软件测试 | 期末复习——测试基础【黑盒测试用例设计】
- 和口袋购物王珂聊移动电商的未来
- 一款题库及试卷管理系统的设计与开发(java 源代码)
- win10语言下载0x8024500C,教你解决win10应用商店错误代码0x8024500c的故障
- siesta在Linux运行,请教,为什么siesta编译中没报错,然而运行的时候跑不起来呢 - 第一原理 - 小木虫 - 学术 科研 互动社区...
- 精易模块3.46 网页_访问u命令