zoukankan      html  css  js  c++  java
  • Codeforces Round #544 (Div. 3) B. Preparation for International Women's Day

      题意就是给n个数字,然后如果2个数字之和%k==0,那么这2个数字可以组成一组,然后要求组成最多组数花费的数字。

      感觉这道贪心很难想到。正解是存ai%k的值,然后对于余数i对应的数字就和余数k-i对应的数字配一组即可被k整除。

    #include<bits/stdc++.h>
    using namespace std;
    int cnt[105];
    
    int main()
    {
        memset(cnt,0,sizeof(cnt));
        int n,k;
        scanf("%d%d",&n,&k);
        for(int i=1;i<=n;i++)
        {
            int x;
            scanf("%d",&x);
            cnt[x%k]++;
        }
        int ans=0;
        for(int i=0;i<=k/2;i++)
        {
            if(i==0)
                ans+=cnt[i]/2*2;
            else
            {
                if(i==k-i)
                    ans+=cnt[i]/2*2;
                else
                    ans+=min(cnt[i],cnt[k-i])*2;
            }
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    person
    汽车.
    矩形
    设计模式
    汽车
    三角形
    银行
    西游记
    面向对象
    随机生成4位验证码,输入验证码与生成的比较,最多输入5次
  • 原文地址:https://www.cnblogs.com/eason9906/p/11754800.html
Copyright © 2011-2022 走看看