zoukankan      html  css  js  c++  java
  • 11.05T3 map

    4854 -- 【十连赛day2】Divisors

    Description

      给定 m 个不同的正整数 a1, a2, ..., am,请对 0 到 m 每一个 k 计算,在区间 [1, n] 里有多少正整数是 a 中恰好 k 个数的约数。

    Input

      第一行包含两个正整数 n, m,分别表示区间范围以及 a 数组的大小。
      第二行包含 m 个不同的正整数 a1, a2, ..., am,表示 a 数组。

    Output

      输出 m + 1 行,每行一个整数,其中第 i 行输出 k = i 的答案。

    Sample Input

    10 3
    4 6 7

    Sample Output

    4
    4
    1
    1

    Hint

    【样例输入2】
    5 1
    8
    【样例输出2】
    2
    3
     
     
     
    简单的求一下因数就可以了
    code:
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<map>
     4 #define N 100005
     5 using namespace std;
     6 map<long long,long long>check;
     7 long long List[N],tot,a[N];
     8 long long num[300];
     9 long long n,m;
    10 void pre() {
    11     for(long long i=1;i<=m;i++){
    12         for(long long j=1;j*j<=a[i];j++){
    13             if(a[i]%j==0){
    14                 if(!check[j])List[++tot]=j;
    15                 check[j]++;
    16                 if(j*j!=a[i]){
    17                     if(!check[a[i]/j])List[++tot]=a[i]/j;
    18                     check[a[i]/j]++;
    19                 }
    20             }
    21         }
    22     }
    23 }
    24 int main() {
    25     cin>>n>>m;
    26     for(long long i=1; i<=m; i++)cin>>a[i];
    27     pre();
    28     num[0]=n;
    29     for(long long i=1;i<=tot;i++){
    30         if(List[i]>n)continue;
    31         num[0]--;
    32         num[check[List[i]]]++;
    33     }
    34     for(long long i=0;i<=m;i++)cout<<num[i]<<'
    ';
    35     return 0;
    36 }

    over

  • 相关阅读:
    angular反向代理配置
    实现对Asp.NetMvc及Asp.NetCore的权限控制
    C# 语言特性发展史
    在angular 6中使用 less
    使用WeihanLi.Redis操作Redis
    [svc]jq神器使用
    [sh]shell脚本栗子
    [k8s]nginx-ingress配置4/7层测试
    [svc]nginx-module-vts第三方模块安装配置
    [k8s]helm原理&私有库搭建&monocularui和kubeapp探究
  • 原文地址:https://www.cnblogs.com/saionjisekai/p/9911851.html
Copyright © 2011-2022 走看看