Time Limit: 1000 MS Memory Limit: 131072 K

Description

Misaka Mikoto is a main character of the Animation “To Aru Majutsu no Index” and “To Aru Kagaku no Railgun”.

She was enrolled into the Academy City to train herself and had been working very hard until she was ranked Level 5,

which is regarded as the highest ranking around the city.

By the way, there are only seven people who reached that level, and she won the third place. Now, she is the best “Electromaster” in Academy City.

Mikoto’s unique skill is to shoot metal objects such as coins at a high speed, destructively.

Hence, she finally gained a nickname, “Railgun” (超電磁砲 (レールガン) .

Mikoto attended Tokiwadai Middle School,which is a famous girls’ secondary school for the rich and elites and was acknowledged

as one of the five famous schools in the Academy City.

To most people, she is considered a typical lady, but in reality, she is short-tempered, prideful, and greatly interested in some childish things.

Misaka has many sisters, they are Misaka’s clones. Unlike Mikoto, they seem rather quiet and emotionless,

their voices are rather monotonous and computer-like, and they speak in third person by adding a description of themselves after every sentence.

In addition, they wear a special set of goggles that enables them to see electron beams and magnetic field lines for the reason that,

unlike Mikoto, they do not have that ability. Misaka clone No. 20001(Last order, 打ち止め, 最终之作).

She is the administrator of the Misaka Network and the fail-safe mechanism in case the Sisters go out of control.

She is not designed to function independently and survive for long outside a culture container and appears to be only about ten years old.

Misaka finds that all her sisters were trapped in a laboratory. Accelerator(一方通行 ,アクセラレータ) is going to kill them!!

She must take actions to save them. Last order tells her that she may not take all the sisters away.

Each sister has an electronic value a. If the GCD(Greatest Common Divisor) of some sisters’ value is greater than m

(if only one sister was chosen, the GCD is the electronic value of herself), then these sisters can be taken away.

Misaka wants to save as many sisters as possible. Please help her!!

Input

In the first line, there is an integer T, indicating the number of test cases.

The next T cases follow. For the first line, there are two integer n and m, n is the number of the sisters, m is the GCD limit.(1 <= n, m <= 1000000)

Then another line shows n integer, represents all the electronic values of all the sisiters.(1 <= values <= 1000000)

Output

Output one line for each test case.

Just print the max number of sisters which Misaka can save.

Sample Input

3

3 1

1 2 3

3 2

1 2 4

3 4

1 3 5

Sample Output

3

2

1

Hint

For the third case, Misaka can only choose the third sister.

#include<queue>
#include<stack>
#include<vector>
#include<math.h>
#include<cstdio>
#include<numeric>//STL数值算法头文件
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<functional>//模板类头文件
using namespace std; const int INF=1e9+7;
const int maxn=1010000;
typedef long long ll; //(筛法的活用)
//首先这一道题讲的是n个数与m的关系,仔细想想
//如果某几个数的gcd是m,那么这几个数肯定是m的倍数,这就是筛法的巧妙之处
//既可以筛出素数,也可以筛出一个数的倍数,放在这一题中,从最小的m开始找,
//把从** m **到*** n个数中的最大数为终点 **范围内的所有m的倍数都找出来
//之前用桶排的思想把出现的数某个的** 次数 **记录下来,如果某个数
//** 是m的倍数,且在这n个数中 **,则把这个数的频数加起来,最后结果就是答案
int n,m,t;
int vis[maxn];
int main()
{
scanf("%d",&t);
while(t--)
{
memset(vis,0,sizeof(vis));
int maxx=0,a;
scanf("%d%d",&n,&m);
for(int i=0; i<n; i++)
{
scanf("%d",&a);
vis[a]++;
maxx=max(maxx,a);
}
int ans=0;
for(int i=m; i<=maxx; i++)
{
int cnt=0;
for(int j=1; j<=maxx; j++)
{
int temp=i*j;
if(temp>maxx)
break;
cnt+=vis[temp];
}
ans=max(cnt,ans);
}
printf("%d\n",ans);
}
return 0;
}

misaka and last order SCU - 4489 (筛法的灵活应用)的更多相关文章

  1. Heritrix源码分析(七) Heritrix总体介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/642794         本博客已迁移到本人独立博客: http://www.yun ...

  2. 【转】SQL常用的语句和函数

    原文链接:http://www.cnblogs.com/mailingfeng/archive/2013/01/07/2850116.html order by 的数值型灵活使用 select * f ...

  3. SQL常用的语句和函数

    order by 的数值型灵活使用 select * from table_a where order by decode(函数,'asc',1,'desc',-1)*jsny; 控制试图的访问时间: ...

  4. 使用CSS灵活的盒子

    CSS3灵活的盒子,或flexbox,是一个布局模式提供页面上的元素的安排这样的元素表现可以预见当页面布局必须适应不同屏幕大小和不同的显示设备.对于许多应用程序,灵活的块盒模型提供了一个改进模型,它不 ...

  5. POJ 1087 A Plug for UNIX / HDU 1526 A Plug for UNIX / ZOJ 1157 A Plug for UNIX / UVA 753 A Plug for UNIX / UVAlive 5418 A Plug for UNIX / SCU 1671 A Plug for UNIX (网络流)

    POJ 1087 A Plug for UNIX / HDU 1526 A Plug for UNIX / ZOJ 1157 A Plug for UNIX / UVA 753 A Plug for ...

  6. POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离)

    POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离) Description You have just moved from a ...

  7. POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径)

    POJ 1797 Heavy Transportation / SCU 1819 Heavy Transportation (图论,最短路径) Description Background Hugo ...

  8. HDU 1686 Oulipo / POJ 3461 Oulipo / SCU 2652 Oulipo (字符串匹配,KMP)

    HDU 1686 Oulipo / POJ 3461 Oulipo / SCU 2652 Oulipo (字符串匹配,KMP) Description The French author George ...

  9. HDU 4489 The King’s Ups and Downs dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4489 The King's Ups and Downs Time Limit: 2000/1000 ...

随机推荐

  1. Python学习笔记(四十八)POP3收取邮件

    收取邮件就是编写一个MUA作为客户端,从MDA把邮件获取到用户的电脑或者手机上.收取邮件最常用的协议是POP协议,目前版本号是3,俗称POP3. Python内置一个poplib模块,实现了POP3协 ...

  2. vue使用jsx/axios拦截器设置

    最害怕的就是做过的事情,转几天又忘记了:写过的代码,也模模糊糊不知道哪里去了,所以告诉自己最好把每天遇到的问题记录下来,好,开始. 新公司要搭个vue后台框架,所以用了简简单单的 vue+iview+ ...

  3. Python作业工资管理系统(第三周)

    作业内容: 实现效果: 从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 效果演示: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工 ...

  4. Installation Guide for Appium 1.6.3

    A.) System Requirements : - Require node 4 or above Xcode 8 iOS 10 B.) Open terminal and type follow ...

  5. 每天一条linux命令(1):ls命令

    ls命令是linux下最常用的命令.ls命令就是list的缩写缺省下ls用来打印出当前目录的清单如果ls指定其他目录那么就会显示指定目录里的文件及文件夹清单. 通过ls 命令不仅可以查看linu ...

  6. memcached安装【转】

    1.安装依赖软件 # yum -y install libevent libevent-devel perl-Test-Harness perl-Time-HiRes perl-TermReadKey ...

  7. TCP的状态兼谈Close_Wait和Time_Wait的状态

    原文链接: http://www.2cto.com/net/201208/147485.html TCP的状态兼谈Close_Wait和Time_Wait的状态   一 TCP的状态: 1).LIST ...

  8. java基础3 循环语句:While 循环语句、do while 循环语句、 for 循环语句 和 break、continue关键字

    一.While循环语句 1.格式 while(条件表达式){ 执行语句: } 2.要点 1,先判断后执行 2,循环次数不定 3,避免死循环 3.举例 题目1:输出0-100之间的所有数 class D ...

  9. AtCoder Non-decreasing(数学思维)

    题目链接:https://abc081.contest.atcoder.jp/tasks/arc086_b 题目大意:有n个数,最多可以执行2*n次操作,每次可以选择将ai加到aj上,最终使得该序列满 ...

  10. python类的继承和多态

    现在属于是老年人的脑子,东西写着写着就忘了,东西记着记着就不知道了.之前学C++的时候就把类.对象这块弄得乱七八糟,现在是因为很想玩python,所以就看看python的类和对象. 就像说的,类有三个 ...