XJTUOJ13 (数论+FFT)
2024-09-30 18:51:41
http://oj.xjtuacm.com/problem/13/
题意:wmq如今开始学习乘法了!他为了训练自己的乘法计算能力,写出了n个整数,
并且对每两个数a,b都求出了它们的乘积a×b。现在他想知道,在求出的n(n-1)/2个乘积中,
除以给定的质数m余数为k(0≤k<m)的有多少个。
对每组数据输出m行,其中第i行为除以m余数为(i-1)的有多少个。
第一行为测试数据的组数。
对于每组测试数据,第一行为2个正整数n,m,2≤n,m≤60000,分别表示整数的个数以及除数。
接下来一行有n个整数,满足0≤ai≤1e9。
保证总输出行数∑m≤3e5。
分析:首先对于输入的a[i],我们肯定先模m一下
然后我们关心的就变成了0~m-1中的数各自有多少个
然后就是处理两个这样的数组“相乘”
和FFT十分类似,但是这里并不是i+j=k,而是i*j=k,那么怎么办呢?
注意到模数是个素数,所以一定有原根x
那么就说明x^1,x^2,...,x^i,...,x^m-1和1,2,3,4,...m-1肯定一一对应
那么我们可以把数字映射成x^i,那么相乘问题就变成了指数的相加
就可以用FFT做了
至于0的情况,特判就ok了
最新文章
- 基于vw的响应式排版布局
- JavaScript 基础第二天
- Javascript之旅——第九站:吐槽function
- 用JavaScript修改浏览器tab标题
- php判断是否为手机客户端
- DB天气app冲刺第十天
- MySQL 知识点
- [Python]网络爬虫(一):抓取网页的含义和URL基本构成
- C51 Keil 优化
- HDU 1372 Knight Moves(BFS)
- Java基础笔记7
- vue双向绑定的原理及实现双向绑定MVVM源码分析
- JS中数组的方法
- json字符串的拼接
- CentOS7 安装配置rsync
- day3-课堂笔记
- 【CF580C】Kefa and Park
- 用Iterator实现遍历集合
- Mybatis的MapperRegistry错误
- 使用qt的hostInfo类,查看本机的IP和设备
热门文章
- FastDFS的简单使用
- 锐动SDK置于社区沙龙
- git 学习笔记1
- js模块化方案以及前端打包工具
- jpa,querydsl
- 《哈佛商业评论》2017年第5期:4星。成功CEO具有4种行为特质:果断、激励参与、主动适应、稳扎稳打。股东价值最大化的理念有重大缺陷。
- libevent学习之网络通信
- centos7 安装后,意外出现Please make your choice from above [&#39;q&#39; to quit | &#39;c&#39; to continue | &#39;r&#39; to refresh]
- CAD参数绘制直径标注(网页版)
- EditControl 限制输入文本的三种方法