当前位置: 首页 > news >正文

【倍数问题——同余系】

题目

代码 O(n+k^{2})

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 1e3 + 10;
int maxx[M][4];
void consider(int r, int x)
{if(x > maxx[r][1]){maxx[r][3] = maxx[r][2];maxx[r][2] = maxx[r][1];maxx[r][1] = x;}else if(x > maxx[r][2]){maxx[r][3] = maxx[r][2];maxx[r][2] = x;}else if(x > maxx[r][3])maxx[r][3] = x;
}
int cal(int i, int j, int t)
{if(i != j && i != t && j != t){return maxx[i][1] + maxx[j][1] + maxx[t][1];}else if(i == j && i == t && j == t){return maxx[i][1] + maxx[i][2] + maxx[i][3];}else{if(i == j){return maxx[i][1] + maxx[i][2] + maxx[t][1];}else if(i == t){return maxx[i][1] + maxx[i][2] + maxx[j][1];}else if(j == t){return maxx[j][1] + maxx[j][2] + maxx[i][1];}}
}
int main()
{int n, k;cin >> n >> k;for(int i = 0; i < k; i++){for(int j = 1; j <= 3; j++){maxx[i][j] = -1e8;}}for (int i = 1; i <= n; i++){int x;cin >> x;int r = x % k;consider(r, x);}int ans = 0;for (int i = 0; i < k; i++){for (int j = 0; j < k; j++){int t = (k - (i + j) % k) % k;ans = max(ans, cal(i, j, t));}}cout << ans;
}

http://www.lryc.cn/news/489016.html

相关文章:

  • 「San」监听DOM变化的方法
  • 如何选择服务器
  • 嵌入式驱动面试总结
  • Uniapp 简单配置鸿蒙
  • 线程池的实现与应用
  • 基于Java Springboot单位考勤系统
  • 近源渗透|HID ATTACK从0到1
  • 【linux】插入新硬盘如何配置:格式化、分区、自动挂载(Ubuntu)
  • YOLOv8-ultralytics-8.2.103部分代码阅读笔记-block.py
  • 代码随想录算法训练营第五十三天|Day53 图论
  • LeetCode:203.移除链表元素
  • 知识见闻 - 数学: 均方根 Root Mean Square
  • 机器硬件调优
  • 如何更改手机GPS定位
  • HarmonyOS(57) UI性能优化
  • Mysql的加锁情况详解
  • hive3.1.2编译spark3安装包
  • 网络安全,文明上网(1)享科技,提素养
  • ESP32 烧录问题
  • CnosDB 实时流式计算:优化时序数据处理与降采样解决方案
  • ApiChain 从迭代测试用例到项目回归测试 核心使用教程
  • 数据集-目标检测系列- 花卉 玫瑰 检测数据集 rose >> DataBall
  • django从入门到实战(四)——模型与数据库
  • LeetCode:1008. 前序遍历构造二叉搜索树
  • gdb - 调试工具 - 入门 (一)
  • Swift内存访问冲突
  • 深入理解Spring(三)
  • TB6612电机驱动模块使用指南
  • Paper -- 洪水深度估计 -- 利用图像处理和深度神经网络绘制街道照片中的洪水深度图
  • 学习C#中的BackgroundWorker 组件