求 k 整除最大元素和(dp)

Description

复制代码
给你一个整数数组,请你在其中选取若干个元素,
使得其和值能被 k 整除,输出和值最大的那个和值。
最后的数字可能很大,所以结果需要对 19260817 取模。

Input

复制代码
第一行是两个正整数 n,k:表示数组的长度,以及被整除的除数 k。
接下来是 n 行,每行是一个正整数 num_i,表示数组中第 i 个数。
n <= 10^5,  k <= 100, num_i <= 10^9。

Output

复制代码
能被 k 整除的元素最大和。

Sample Input

复制代码
5 3
3
5
1
8
6

Sample Output

复制代码
18

思路:

将n个数取余分到0-(k-1)数组内,然后dp,dp[i][j]代表前0-i内的数相加,余数为j的最大值。

#define _CRT_SECURE_NO_WARNINGS

#include<iostream>

#include<string>

#include<cstring>

#include<cmath>

#include<ctime>

#include<algorithm>

#include<utility>

#include<stack>

#include<queue>

#include<vector>

#include<set>

#include<math.h>

#include<map>

#include<unordered_map>

using namespace std;

typedef long long LL;

typedef unsigned long long ULL;

const int N = 1000;

LL dp[110][110];

vector<LL> p[110];

LL n,k,x;

bool cmp(LL x, LL y)

{

return x > y;

}

int main() {

cin >> n >> k;

for (int i = 1; i <= n; i++)

{

scanf("%lld", &x);

p[x % k].push_back(x);

}

for (int i = 0; i <= k-1; i++)

sort(p[i].begin(), p[i].end(), cmp);

x = 0;

for (int i = 0; i <p[0].size(); i++)

x += p[0][i];

dp[0][0] = x;

for (int i = 1; i <= k - 1; i++)

{

LL sum = 0;

for (int j = 0; j < p[i].size(); j++)

{

sum += p[i][j];

x = (j + 1) * i % k;

for (int w = 0; w <= k - 1; w++)

{

if (j == 0) dp[i][w] = max(dp[i - 1][w], dp[i][w]);

if (dp[i - 1][w])

dp[i][(x + w) % k] = max(dp[i][(x + w) % k], dp[i - 1][w] + sum);

}

}

}

cout << dp[k-1][0] % 19260817 << endl;

return 0;

}

相关推荐
流年如夢9 分钟前
二叉树详解
c语言·数据结构·算法
xiaoxiaoxiaolll17 分钟前
Nature Communications:三维超原子库+原子层保护,突破全彩VR超透镜量产瓶颈
人工智能·算法
仍然.18 分钟前
算法题目---栈
算法
feifeigo12321 分钟前
基于布谷鸟算法的配电网分布式电源选址定容 MATLAB 实现
开发语言·算法·matlab
MicroTech20251 小时前
微算法科技(NASDAQ: MLGO)噪声图像的量子图像边缘提取算法:技术革新与产业赋能
科技·算法·量子计算
大模型最新论文速读1 小时前
EvoLM:8B 模型自写评分标准,RL 后超越 GPT-4
人工智能·深度学习·算法·机器学习·自然语言处理
木子墨5161 小时前
工程算法实战 | 从LRU到手写本地缓存:LinkedHashMap → 双向链表+哈希表 → Caffeine 原理
java·数据结构·算法·链表·缓存
数智工坊1 小时前
【Offline RL1】离线强化学习全景:从基础理论到前沿算法与工业落地
算法
流年如夢1 小时前
二叉树(LeetCode)
数据结构·算法·leetcode·职场和发展
数据皮皮侠1 小时前
上市公司内源与债权股权融资协同数据(2009-2025)
大数据·人工智能·算法·microsoft·百度