如果一个数组满足长度至少是 22 ,并且其中任意两个不同的元素 A_iAi​ 和 A_j (i \not = j)Aj​(i​=j) 其和 A_i+A_jAi​+Aj​ 都是 KK 的倍数,我们就称该数组是完美 KK 倍数组。

现在给定一个包含 NN 个整数的数组 A = [A_1, A_2, ... A_N]A=[A1​,A2​,...AN​] 以及一个整数 KK,请你找出 AA 的最长的完美子数组 BB,输出 BB 的长度。

如果这样的子数组不存在,输出 -1−1。

输入格式

第一行包含两个整数 NN 和 KK。

第二行包含 NN 个整数 A_1, A_2, ... A_NA1​,A2​,...AN​。

1 \le N \le 1000001≤N≤100000

1 \le A_i, K \le 10000000001≤Ai​,K≤1000000000

输出格式

一个整数,表示答案。

输出时每行末尾的多余空格,不影响答案正确性

样例输入

5 3
1 3 2 3 6

样例输出

3

题解:

我原本想的是把每一个输入的数x都取余于k,然后把r[x]++(r是一个map容器,记录x出现的次数),然后k-x与x放在一起不久刚好是k的倍数了吗。。。但是我没有考虑如果x+x不是k的倍数

就比如k==4,如果n==4为1,1,3,3,那么r[1]=2,r[3]=2,那么这个集合长度不能为4只能为2,因为如果集合长度为4,那么1+1=2就不是4的倍数

所以如果r[x]>0且r[k-x]>0,那么集合长度最小为2.要特别注意一下r[0],和当k为偶数时r[k/2],这两个单独自己就可以构成k倍数组

代码:

 1 #include<stdio.h>
2 #include<string.h>
3 #include<iostream>
4 #include<algorithm>
5 #include<math.h>
6 #include<vector>
7 #include<queue>
8 #include<map>
9 using namespace std;
10 typedef long long ll;
11 const int maxn=1e5;
12 const int INF=0x3f3f3f3f;
13 map<ll,ll>r;
14 map<ll,ll>::iterator it;
15 int main()
16 {
17 ll n,k,tmp,maxx;
18
19 cin>>n>>k;
20
21 ll cnt1=0,cnt2=0,flag=0;
22
23 for(ll i=0;i<n;++i){
24
25 cin>>tmp;
26
27 int t=tmp%k;
28
29 if(t==0) r[t]++,maxx=max(maxx,r[t]);
30
31 else if(2*t%k==0) r[t]++,maxx=max(maxx,r[t]);
32
33 else if(!flag){
34
35 r[t]=1;
36
37 if(r[k-t]) flag=1;
38
39 }
40
41 }
42 if(maxx<2 && !flag) cout<<-1<<endl;
43 else if(maxx>=2) cout<<maxx<<endl;
44 else cout<<2<<endl;
45 return 0;
46 }

计蒜客-T1271 完美K倍子数组的更多相关文章

  1. 并查集 2019年8月10日计蒜客联盟周赛 K.数组

    题目链接:https://nanti.jisuanke.com/t/40860 题意:给一个长度为n的数组a[],n<1e5,a[i]<1e5 三个操作: 1 x y:把所有值为x的数据改 ...

  2. 计蒜客 作弊揭发者(string的应用)

    鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...

  3. 计蒜客模拟赛5 D2T1 成绩统计

    又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...

  4. 计蒜客 方程的解数 dfs

    题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...

  5. 计蒜客 买书 dfs

    题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...

  6. 计蒜客:Entertainment Box

    Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...

  7. 计蒜客 31434 - 广场车神 - [DP+前缀和]

    题目链接:https://nanti.jisuanke.com/t/31434 小 D 是一位著名的车手,他热衷于在广场上飙车.每年儿童节过后,小 D 都会在广场上举行一场别样的车技大赛. 小 D 所 ...

  8. 计蒜客 NOIP 提高组模拟竞赛第一试 补记

    计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...

  9. 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)

    ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...

随机推荐

  1. LeetCode1337矩阵中最弱的K行

    题目 给你一个大小为 m * n 的矩阵 mat,矩阵由若干军人和平民组成,分别用 1 和 0 表示. 请你返回矩阵中战斗力最弱的 k 行的索引,按从最弱到最强排序. 如果第 i 行的军人数量少于第 ...

  2. Manjaro Linux 5.9.11-3安装和配置全局截图工具FlameShot教程

    背景说明 截图工具是日常适用频率较高的一种系统工具,在Linux下也有不少常用截图工具,如deepin-screenshot等,但是今天我们要介绍的是FlameShot--一款更加精致的Linux全局 ...

  3. 【Spring】XML方式实现(无参构造 有参构造)和注解方式实现 IoC

    文章目录 Spring IoC的实现方式 XML方式实现 通过无参构造方法来创建 1.编写一个User实体类 2.编写我们的spring文件 3.测试类 UserTest.java 4.测试结果 通过 ...

  4. 【MySQL】ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing

    今天上午遇到了一个问题,新创建的mysql5.7的数据库,由于初始化有点问题,没有给root密码,用了免密码登录. 但是,修改了root密码之后,把配置中的免密登录的配置注释掉后,重启服务.服务正常启 ...

  5. LeetCode559.N 叉树的最大深度

    题目 法一.层序遍历 1 class Solution { 2 public: 3 int maxDepth(Node* root) { 4 if(root== NULL) return 0; 5 q ...

  6. python—base64

    今天在写题时,执行脚本又报错了 脚本如下 #! /usr/bin/env python3 # _*_ coding:utf-8 _*_ import base64 # 字典文件路径 dic_file_ ...

  7. Spring集成GuavaCache实现本地缓存

    Spring集成GuavaCache实现本地缓存: 一.SimpleCacheManager集成GuavaCache 1 package com.bwdz.sp.comm.util.test; 2 3 ...

  8. 1.5V升3.3V芯片电路图,稳压3.3V供电MCU模块等

    干电池1.5V可以升到3.3V,通过PW5100干电池升压IC,于外围3个元件:2个电容和一个电感即可组成1.5V升3.3V的电路系统. 干电池属于低能量的电池产品,不过一般使用到干电池的产品也是输出 ...

  9. PAT练习num3-跟奥巴马一起学编程

    美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014 年底,为庆祝"计算机科学教育周"正式启动,奥巴马编写了很简单的计算机 ...

  10. SpringMVC下关于静态资源访问

    SpringMVC静态资源访问 聊一聊关于静态资源的访问问题 首先,我们要对web.xml里面的DispatcherServlet进行设置 <!-- 中央调度器--> <servle ...