博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihocoder-1796-完美K倍子数组
阅读量:4448 次
发布时间:2019-06-07

本文共 1091 字,大约阅读时间需要 3 分钟。

hihocoder-1796-完美K倍子数组 

 

#1796 : 完美K倍子数组

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

如果一个数组满足长度至少是2,并且其中任意两个不同的元素Ai和Aj (i ≠ j)其和Ai+Aj都是K的倍数,我们就称该数组是 完美K倍数组。  

现在给定一个包含N个整数的数组A = [A1, A2, ... AN]以及一个整数K,请你找出A的最长的完美子数组B,输出B的长度。  

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

输入

第一行包含两个整数N和K。  

第二行包含N个整数A1, A2, ... AN。  

1 ≤ N ≤ 100000  

1 ≤ Ai, K ≤ 1000000000

输出

一个整数,表示答案。

样例输入
5 3  1 3 2 3 6
样例输出
3

 

题解:

  对于K倍,需要同时关注K倍的和 K 倍 余K/2 的数。

  还需要考虑: 不存在两者时,数组内,是否存在两个数字的和整除K。

 

 

#include 
#include
#include
using namespace std; const int MAXN = 100000 + 10; int N, K; int num[MAXN]; int find_array(){ bool is_even; if(K%2 == 0) { is_even = true; }else{ is_even = false; } int k_full = 0, k_half = 0; for(int i=0; i
k_full) { if(k_half == 1) { ans = 0; }else{ ans = k_half; } }else{ ans = k_full; } return ans; }bool find_pair(){ set
vis; for(int i=0; i

  

 

转载于:https://www.cnblogs.com/zhang-yd/p/9615088.html

你可能感兴趣的文章
JVM调优总结
查看>>
关于编程的思考
查看>>
20款最佳jQuery应用程序和框架(上)
查看>>
git安装和使用
查看>>
数据类型转换
查看>>
Nodejs学习笔记(2) 阻塞/非阻塞实例 与 Nodejs事件
查看>>
跟我一起读postgresql源码(六)——Executor(查询执行模块之——查询执行策略)
查看>>
scala的4中for循环,及while和do while循环
查看>>
vue.js windows下开发环境搭建
查看>>
数据表改变之后数据的迁移
查看>>
雷林鹏分享:Ruby 环境变量
查看>>
掉书袋的东东,我喜欢。。。
查看>>
通过MYSQL命令行直接建数据库
查看>>
safari 插件安装之alipay
查看>>
【语言处理与Python】3.3使用Unicode进行文字处理
查看>>
python+senium+chrome的简单爬虫脚本
查看>>
CoronaSDK场景管理库:Composer library (上)
查看>>
Go语言程序结构
查看>>
【算法导论】第6章堆排序及利用堆建立最小优先级队列
查看>>
Log4Net配置方法
查看>>