JXNU acm选拔赛 最小的数

最小的数

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 14   Accepted Submission(s) : 8

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

定义一种正整数集合K,集合中有N个数,集合中元素Ki(1<=i<=N)是包含i个不同质因子的最小的数。因为Ki可能会很大,所以将集合中所有Ki对10^9+7取余。

Input

本题只有唯一一组测试数据,第一行给出N,q,表示K的个数以及q次询问。1<=N<=1000,q<=10^5.
接下来q行每行一个正整数(64位整数范围内),请判断其对10^9+7取余后,是否在集合K中。

Output

对于每次询问,根据题意输出Yes或No

Sample Input

3 3
2
6
33

Sample Output

Yes
Yes
No


 1 #include<iostream>
 2 #include<stdio.h>
 3 using namespace std;
 4 long long num[1005];//特别注意这个数组虽然要是取余的值,但是在求下一个数的时候可能会爆了int,比赛的时候就错在这
 5 int s[1005];
 6 bool su(int x){
 7     if(x==1) return true;
 8     else if(x==2) return true;
 9     else if(x%2==0) return false;
10     else {
11         for(int i=3;i*i<=x;i=i+2){
12             if(x%i==0) return false;
13         }
14         return true;
15     }
16 }
17 int main()
18 {
19     int t=1;
20     for(int i=1;t<=1005;i++)
21         if(su(i)) s[t++]=i;
22     num[1]=1;
23     for(int i=2;i<=1002;i++){
24         num[i]=(num[i-1]*s[i])%1000000007;//这地方可能会爆
25     }
26     int n,q;
27     cin>>n>>q;
28     long long xx;
29     for(int i=0;i<q;i++)
30     {
31         scanf("%lld",&xx);
32         int x,flag=0;
33         x=xx%1000000007;
34         for(int j=1;j<=n;j++){
35             if(x==num[j]){
36                 flag=1;
37                 break;
38             }
39         }
40         if(flag)
41             cout<<"Yes"<<endl;
42         else
43             cout<<"No"<<endl;
44     }
45     return 0;
46 }



				
时间: 2024-10-10 09:15:17

JXNU acm选拔赛 最小的数的相关文章

JXNU acm选拔赛 涛涛的Party

涛涛的Party Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 21   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 涛神因为极强,并且特别帅,所以拥有很多美女的联系方式,每个

JXNU acm选拔赛 壮壮的数组

壮壮的数组 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 18   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description A,B,C为三个元素个数为n的数组,A={a1,a2,a3...

JXNU acm选拔赛 涛神的城堡

涛神的城堡 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submission(s) : 42   Accepted Submission(s) : 8 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 涛神有一个城堡给游客参观,涛神特别的强壮,涛神的强壮值是stro

jxnu acm新生选拔赛

最小的数 Problem Description 定义一种正整数集合K,集合中有N个数,集合中元素Ki(1<=i<=N)是包含i个不同质因子的最小的数.因为Ki可能会很大,所以将集合中所有Ki对10^9+7取余. Input 本题只有唯一一组测试数据,第一行给出N,q,表示K的个数以及q次询问.1<=N<=1000,q<=10^5.接下来q行每行一个正整数(64位整数范围内),请判断其对10^9+7取余后,是否在集合K中. Output 对于每次询问,根据题意输出Yes或No

hdu 1728 bfs 最小拐弯数

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1728 之前没有做过类似这种要最少拐弯数的题目,一般求最少的用bfs应该比较好..但是之前bfs一般都是用来求最小步数,也就可以标记过走过的点不再走.现在本题要的是最小的拐弯数,所以不能标记走过的点..需要一个数组来记录当前这个点所需要的最小拐弯数,如果此时这个点的拐弯数比之前该点的拐弯数还小或者等于就更新这个值.遍历全图直到找到解为止. 学习:对于bfs找最优解的变形.明白如何更新拐弯数的,保证最小.

百度:求绝对值最小的数

我只是从网上搜集的,下面的代码或许有错误. 看了会Hadoop,和传华聊了会,他说,他们那三等奖8000,:打算要回宿舍了,不经意间看到了这个题,貌似简单,其实还是比较有难度的. 一段时间只能干一件事就行了. 有一个已经排序的数组(升序),数组中可能有正数.负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现,例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4. 算法实现的基本思路:找到负数和正数的分界点,

编程算法 - 把数组排成最小的数 代码(C)

把数组排成最小的数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个正整数数组, 把数组里所有数字拼接起来排成一个数, 打印能拼接出的所有数字中最小的一个. 大数转换为字符串, 重载快速排序的比较方法, 进行排序, 最后拼接. 代码: /* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdi

51Nod - 1097 拼成最小的数

51Nod - 1097 拼成最小的数 设有n个正整数,将它们联接成一排,组成一个最小的多位整数. 例如: n=2时,2个整数32,321连接成的最小整数为:32132, n=4时,4个整数55,31,312, 33 联接成的最小整数为:312313355 Input 第1行:1个数N.(2 <= N <= 10000) 第2 - N + 1行:每行1个正整数.(1 <= A[i] <= 10^9) Output 输出拼在一起的最小整数.由于数据量太大,请以1000个字符为单位,输

Min Number 贪心,把最小的数放在最前

题目链接 Problem 2111 Min Number Accept: 499    Submit: 949 Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description Now you are given one non-negative integer n in 10-base notation, it will only contain digits ('0'-'9'). You are allowed to c