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了

最新文章

  1. 基于vw的响应式排版布局
  2. JavaScript 基础第二天
  3. Javascript之旅——第九站:吐槽function
  4. 用JavaScript修改浏览器tab标题
  5. php判断是否为手机客户端
  6. DB天气app冲刺第十天
  7. MySQL 知识点
  8. [Python]网络爬虫(一):抓取网页的含义和URL基本构成
  9. C51 Keil 优化
  10. HDU 1372 Knight Moves(BFS)
  11. Java基础笔记7
  12. vue双向绑定的原理及实现双向绑定MVVM源码分析
  13. JS中数组的方法
  14. json字符串的拼接
  15. CentOS7 安装配置rsync
  16. day3-课堂笔记
  17. 【CF580C】Kefa and Park
  18. 用Iterator实现遍历集合
  19. Mybatis的MapperRegistry错误
  20. 使用qt的hostInfo类,查看本机的IP和设备

热门文章

  1. FastDFS的简单使用
  2. 锐动SDK置于社区沙龙
  3. git 学习笔记1
  4. js模块化方案以及前端打包工具
  5. jpa,querydsl
  6. 《哈佛商业评论》2017年第5期:4星。成功CEO具有4种行为特质:果断、激励参与、主动适应、稳扎稳打。股东价值最大化的理念有重大缺陷。
  7. libevent学习之网络通信
  8. centos7 安装后,意外出现Please make your choice from above [&#39;q&#39; to quit | &#39;c&#39; to continue | &#39;r&#39; to refresh]
  9. CAD参数绘制直径标注(网页版)
  10. EditControl 限制输入文本的三种方法