zoukankan      html  css  js  c++  java
  • 嵊州普及Day4T1

    题意:从n个数中选出k个数,使他们任意两数之差都等于m。

    思路:任意差值都等于m,不就等价于k个数模m余数相同吗?

    然后桶排储蓄一下各数余数即可。

    见代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int n,k,m,s,flag,sum,a[100001],b[100001];
    int main()
    {
    //    freopen("rollover.in","r",stdin);
    //    freopen("rollover.out","w",stdout);
        cin>>n>>k>>m;
        for(int i=1;i<=n;i++)
        {
            cin>>s;
            a[s]++;
            b[s%m]++;
        }
        for(int i=1;i<=n;i++)
        if(b[i]>=k)
        {
            flag=i;
            cout<<"Yes"<<endl;
            break;
        }
        if(flag!=0)
        for(int i=flag;sum<=k;i+=m)
        {
            while(a[i]>0&&sum<k)
            {
                cout<<i<<" ";
                a[i]--;
                sum++;
            }
        }
        else
        cout<<"No";
        return 0;
    }

    好吧又炸了。

    注意主函数第10行循环细微的区别,本来循环m的循环了n,这里就不解释了。

    见代码*2:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int n,k,m,s,flag,sum,a[100001],b[100001];
    int main()
    {
    //    freopen("rollover.in","r",stdin);
    //    freopen("rollover.out","w",stdout);
        cin>>n>>k>>m;
        for(int i=1;i<=n;i++)
        {
            cin>>s;
            a[s]++;
            b[s%m]++;
        }
        for(int i=0;i<m;i++)
        if(b[i]>=k)
        {
            flag=i;
            cout<<"Yes"<<endl;
            break;
        }
        if(flag!=0)
        for(int i=flag;sum<=k;i+=m)
        {
            while(a[i]>0&&sum<k)
            {
                cout<<i<<" ";
                a[i]--;
                sum++;
            }
        }
        else
        cout<<"No";
        return 0;
    }

    好题哉!!!

     

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/qing1/p/11185290.html
Copyright © 2011-2022 走看看