题目链接:http://codeforces.com/problemset/problem/1133/B

题目分析

读完题目,凡是先暴力.....(不用想,第四组数据就TLE了,QAQ)

当两个数的和为k的倍数的时候就凑成一组,那么一定有  (a+b) % k == (a%k + b %k) % k , 而其中对于  a+b 为k的倍数的情况,有(a+b)%k ==  a%k+b%k - k  == 0, 我理解为a%k 和 b % k 分别是a,b对凑成数k的贡献。然后,你们也应该想到了,即然满足的组合a%k + b%k == 0,那么我们用数组num[]来存各个数对k取模后的值( x % k )出现的次数,然后,下标之和为k的数就是满足条件的配对,后面就简单了,统计数量就OK    。

代码区

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include <vector>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int Max = 2e5 + 10;
const int mod = 1e9 + 7; int num[Max]; //记录各个值(value[x])对k取模后的数的出现次数
int value[Max]; int main()
{
int n, k;;
while (scanf("%d%d", &n, &k) != EOF)
{
memset(num, 0, sizeof(num));
for (int i = 1; i <= n; i++)
{
scanf("%d", value + i);
num[value[i] % k]++; //两数相加后取模和 两数先取模后相加再取模 结果一样
}
int sum = num[0] / 2; //记录可以配对的对数
if (k % 2 == 0) //k/2的相加
{
sum += num[k / 2] / 2; //k/2的相加
}
int l = 1, r = k - 1;
while (l < r)
{
sum += min(num[l], num[r]);
l++;
r--;
}
printf("%d\n", 2 * sum); }
return 0;
}

CF 1133B Preparation for International Women's Day的更多相关文章

  1. Codeforces Round #544 (Div. 3) B.Preparation for International Women's Day

    链接:https://codeforces.com/contest/1133/problem/B 题意: 给n个数,和一个k,在n个数中选几对数,保证没对数相加可以整除k. 求最大能选几个数. 思路: ...

  2. Codeforces Round #544 (Div. 3)解题报告

    A.Middle of the Contest 考虑把输入的时间单位化成分钟,相加除以2就好了 #include<bits/stdc++.h> using namespace std; # ...

  3. CodeForces Round #544 Div.3

    A. Middle of the Contest 代码: #include <bits/stdc++.h> using namespace std; int h1, m1, h2, m2; ...

  4. CF-544:部分题目总结

    -------------------昨天打的重现赛,感觉是我打的发挥的最好的一场比赛了,六题都一次AC.那么就来总结一下吧 题目链接:http://codeforces.com/contest/11 ...

  5. News common vocabulary

    英语新闻常用词汇与短语 经济篇 accumulated deficit 累计赤字 active trade balance 贸易顺差 adverse trade balance 贸易逆差 aid 援助 ...

  6. S8-codelab02

    import news_cnn_model import numpy as np import os import pandas as pd import pickle import shutil i ...

  7. 100-days: ten

    Title: Emma Watson(艾玛·沃森), Keira Knightley(凯拉·奈特莉) among stars(众多明星之一)  urging(竭力主张,呼吁某事) better pro ...

  8. SimpleCalendar日历插件改版

    先附上一张货真价实的效果图: 以上部分代码,为了适应我司项目的需求,原来插件源码大改(因为项目中下拉框用了select2,所以原来插件的下拉框就有问题了,在加上原来插件本身就有点问题,特别是农历 .节 ...

  9. 关于cf[转]

    还不怎么熟悉cf呢.. 你应当知道的关于Codeforces的事情 Codeforces简称: cf(所以谈论cf的时候经常被误会成TX的那款游戏).网址: codeforces.com 这是一个俄国 ...

随机推荐

  1. 踩坑之SpringBoot WebSocker 部署Tomcat冲突

    启动tomcat容器,部署SpringBoot项目,启动项目报错,如下图: 看1.2的顺序就知道是WebSocket冲突了. 上网找了一下资料发现,使用@ServerEndpoint创立websock ...

  2. C++入门经典-例8.2-构造函数的访问顺序

    1:父类和子类中都有构造函数和析构函数,那么子类对象在创建时是父类先进行构造还是子类先进行构造?同样,在子类对象释放时,是父类先进行释放,还是子类先进行释放?这都是有先后顺序的.答案是当从父类派生一个 ...

  3. python接口自动化:pycharm中import yaml报错问题解决

    一:问题 python3在cmd命令行中已经安装了yaml,且import yaml是成功的,但是pcharm中import yaml还是红色报错 二:分析原因 pycharm和python环境需要分 ...

  4. 软工团队Git现场编程实战

    组员职责分工 成员 分工 鲍子涵 分配职责,整合代码 吴宜航 UI设计与实现 钟博 UI设计与实现(Main Coder) 黄海东 数据整理 王镇隆 前端api接口分析和使用(Main Coder) ...

  5. phpStrom破解 + Your license has expired

    找到 C:\Windows\System32\drivers\etc 的 hosts文件在最后加上"0.0.0.0 account.jetbrains.com" 然后点击获取注册码 ...

  6. leetcode-hard-array-454 4sum II-NO

    mycode   过不了...我也不知道为什么... class Solution(object): def fourSumCount(self, A, B, C, D): ""& ...

  7. selenium爬虫使用

    1. 网页的打开 from selenium import webdriver import time driver = webdriver.Chrome(executable_path=r" ...

  8. leetcode315 计算右侧小于当前元素的个数

    1. 采用归并排序计算逆序数组对的方法来计算右侧更小的元素 time O(nlogn): 计算逆序对可以采用两种思路: a. 在左有序数组元素出列时计算右侧比该元素小的数字的数目为 cnt=r-mid ...

  9. vue文件流转换成pdf预览(pdf.js+iframe)

    参考文档:https://www.jianshu.com/p/242525315bf6 PDFJS: https://mozilla.github.io/pdf.js/     支持获取文件流到客户端 ...

  10. 在Excel工作表单元格中引用当前工作表名称

    在Excel工作表单元格中引用当前工作表名称 有多份Excel表格表头标题都为"××学校第1次拉练考试××班成绩表",由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改 ...