• 倍数关系


    牛客练习赛33 B tokitsukaze and RPG
    tokitsukaze最近沉迷一款RPG。
    这个RPG一天有k分钟,每一天从第1分钟开始。
    有n种怪物,第i种怪物每天第一次出现的时间为Xi分钟,第二次出现的时间为2*Xi分钟,第三次出现的时间为3*Xi分钟......同一时刻出现的怪物种类越多,打怪获得的经验也越高。
    为了高效练级,tokitsukaze想知道在一天内出现怪物种类最多的时间点会出现多少种怪物,这样的时间点有多少个。

    输入描述:

    第一行包括2个正整数n,k(1≤n≤10^5,1≤k≤10^6),表示有n种怪物,一天有k分钟。
    接下来一行包括n个正整数X(1≤Xi≤10^6),含义如题面所示。

    输出描述:

    输出一行,包括两个整数a,b。
    a表示怪物种类数,b表示时间点的个数。
    示例1

    输入

    复制
    3 6
    2 2 3
    

    输出

    复制
    3 1
    

    说明

    在第6分钟时,3种怪物都出现了。
    示例2

    输入

    复制
    3 5
    2 2 3
    

    输出

    复制
    2 2
    

    说明

    在第2分钟和第4分钟时,第一种和第二种怪物出现了。
    示例3

    输入

    复制
    6 10
    1 2 3 4 5 6
    

    输出

    复制
    4 1
    

    说明

    在第6分钟时,出现了第一种、第二种、第三种、第六种怪物。
    示例4

    输入

    复制
    3 5
    6 6 6
    

    输出

    复制
    0 5
    

    说明

    在第1分钟、第2分钟、第3分钟、第4分钟、第5分钟,都没有出现怪物。
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <algorithm>
     6 #include <utility>
     7 #include <vector>
     8 #include <map>
     9 #include <queue>
    10 #include <stack>
    11 #include <cstdlib>
    12 typedef long long ll;
    13 #define lowbit(x) (x&(-x))
    14 #define ls l,m,rt<<1
    15 #define rs m+1,r,rt<<1|1
    16 using namespace std;
    17 const int   mod= 1e9+7;
    18 const int N=1e6+9;
    19 int n,k,x;
    20 int num[N],a[N];
    21 int  main()
    22 {
    23     scanf("%d%d",&n,&k);
    24     for(int  i=0;i<n;i++){
    25        scanf("%d",&x);
    26        a[x]++;
    27     }
    28     for(int i=1;i<=k;i++){
    29         if(a[i]){
    30             for(int j =i;j<=k;j+=i){
    31                 num[j]+=a[i];
    32             }
    33         }
    34     }
    35     sort(num+1,num+1+k);
    36     int maxx=num[k];
    37     int cnt=0;
    38     for(int i=k;i>=1;i--){
    39         if(num[i]==maxx){
    40         cnt++;}
    41     }
    42     printf("%d %d
    ",maxx,cnt);
    43 }

    牛客练习赛33

    A tokitsukaze and Counting

    给出3个整数L,R,x。tokitsukaze想知道,闭区间[L,R]中,x的倍数出现了几次。

    int t;
    ll l,r,x;
    int  main()
    {
        scanf("%d",&t);
        while(t--){
            scanf("%lld%lld%lld",&l,&r,&x);
            ll ans1 =r/x;
            ll ans2=(l-1)/x;
            ll ans =ans1-ans2;
            printf("%lld
    ",ans);
        }
        return  0;
    }
    //能被2,3,4,5,整除吗?
    https://blog.csdn.net/c_circle/article/details/78492772
  • 相关阅读:
    tar 解压缩命令
    utf8转为gb2312的函数
    .bash_profile和.bashrc的区别(如何设置生效)
    shell脚本操作mysql数据库—创建数据库,在该数据库中创建表(插入,查询,更新,删除操作也可以做)
    CentOS查看系统信息命令和方法
    SSL Programming Tutorial
    高性能、高并发TCP服务器(多线程调用libevent)
    phpmyadmin数据导入最大限制的解决方法
    微信分享网页的缩略图
    微信公众账号添加关注按钮和分享到朋友圈按钮.
  • 原文地址:https://www.cnblogs.com/tingtin/p/10085580.html
Copyright © 2020-2023  润新知