CF 1133B Preparation for International Women's Day
题目分析
读完题目,凡是先暴力.....(不用想,第四组数据就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的更多相关文章
- Codeforces Round #544 (Div. 3) B.Preparation for International Women's Day
链接:https://codeforces.com/contest/1133/problem/B 题意: 给n个数,和一个k,在n个数中选几对数,保证没对数相加可以整除k. 求最大能选几个数. 思路: ...
- Codeforces Round #544 (Div. 3)解题报告
A.Middle of the Contest 考虑把输入的时间单位化成分钟,相加除以2就好了 #include<bits/stdc++.h> using namespace std; # ...
- CodeForces Round #544 Div.3
A. Middle of the Contest 代码: #include <bits/stdc++.h> using namespace std; int h1, m1, h2, m2; ...
- CF-544:部分题目总结
-------------------昨天打的重现赛,感觉是我打的发挥的最好的一场比赛了,六题都一次AC.那么就来总结一下吧 题目链接:http://codeforces.com/contest/11 ...
- News common vocabulary
英语新闻常用词汇与短语 经济篇 accumulated deficit 累计赤字 active trade balance 贸易顺差 adverse trade balance 贸易逆差 aid 援助 ...
- S8-codelab02
import news_cnn_model import numpy as np import os import pandas as pd import pickle import shutil i ...
- 100-days: ten
Title: Emma Watson(艾玛·沃森), Keira Knightley(凯拉·奈特莉) among stars(众多明星之一) urging(竭力主张,呼吁某事) better pro ...
- SimpleCalendar日历插件改版
先附上一张货真价实的效果图: 以上部分代码,为了适应我司项目的需求,原来插件源码大改(因为项目中下拉框用了select2,所以原来插件的下拉框就有问题了,在加上原来插件本身就有点问题,特别是农历 .节 ...
- 关于cf[转]
还不怎么熟悉cf呢.. 你应当知道的关于Codeforces的事情 Codeforces简称: cf(所以谈论cf的时候经常被误会成TX的那款游戏).网址: codeforces.com 这是一个俄国 ...
随机推荐
- 笔记本在安装Windows+Linux双系统后,进入Windows时花屏的解决办法
问题:在笔记本安装双系统(Windows7+Ubuntu14.04)[先安装Windows,后安装Ubuntu]后,进入Windows时出现了花屏. 问题原因:笔记本只有集显,在系统启动时会先加载Ub ...
- Another Filling the Grid
E. Another Filling the Grid 参考:Codeforces Round #589 (Div. 2)-E. Another Filling the Grid-容斥定理 容斥这个东 ...
- js上传图片获取原始宽高
以vue上传图片为例: <template> <div> <input type="file" @change="uploadFile($e ...
- cocos2dx热更新之后,闪退问题记录。
如果使用cocos2dx的3.17.2版本的官方热更新. 然后有玩家反馈说热更新之后游戏闪退,游戏内有部分资源没更到. 考虑如下几个方面调整. 1,在文件下载失败的时候,直接调用重新下载. 2,把下载 ...
- JVM-GC算法(三)-分代收集算法
对象分类 上次已经说过,分代收集算法是针对对象的不同特性,而使用合适的算法,这里面并没有实际上的新算法产生.与其说分代收集算法是第四个算法,不如说它是对前三个算法的实际应用. 首先我们来探讨一下对象 ...
- C++入门经典-例9.5-为具体类型的参数提供默认值
1:默认模板参数是指类模板中由默认的数据类型作为参数的参数,在模板定义时,还可以为默认的数据类型声明,变量,并为变量赋值.代码如下: // 9.5.cpp : 定义控制台应用程序的入口点. #incl ...
- shiro 不使用加密 解决 org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token [org.apache.sh
测试本方法为失效的 报错: org.apache.shiro.authc.IncorrectCredentialsException: Submitted credentials for token ...
- Linux 多线程按照线程顺序打印字符
#include <stdio.h> #include <pthread.h> #include <unistd.h> ; pthread_mutex_t mute ...
- LeetCode 分类颜色
LeetCode 分类颜色 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 ...
- 搭建Java服务器,并且实现远程安全访问linux系统
1.通过ssh实现安全远程访问linux系统 ssh :secure shell 加密: 1. 对称加密 (加密密钥与解密密钥相同) des ...