1500*A. Boredom(DP)

Problem - 455A - Codeforces

Boredom - 洛谷

解析:

首先统计每个数的个数,并且统计出最大值mx。

问题转换为,从1-mx 中选择任意个数字,使其都不相邻,求最大的总和。

开始没有思路,以为直接选取偶数位和奇数位,然后求较大值。

正解位DP,dp[ i ] 如果不选则等于 dp[ i-1 ],如果选,则等于dp[ i-2 ] + i *cnt [ i ] ,遍历每次求最大值即可。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+5;
int n,x,cnt[N],mx,dp[N];
signed main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",&x);
		cnt[x]++;
		mx=max(mx,x);
	}
	dp[1]=cnt[1];
	for(int i=2;i<=mx;i++){
		dp[i]=max(dp[i-1],dp[i-2]+i*cnt[i]);
	}
	printf("%lld",dp[mx]);
	return 0;
}
相关推荐
qq_4160187214 小时前
C++与机器学习框架
开发语言·c++·算法
左左右右左右摇晃14 小时前
数据结构——红黑树
算法
CoovallyAIHub14 小时前
传感器数据相互矛盾时,无人机蜂群如何做出可靠的管道泄漏检测决策?
算法·架构·无人机
CoovallyAIHub14 小时前
Claude Code Review:多 Agent 自动审查 PR,代码产出翻倍后谁来把关?
算法·架构·github
Bert.Cai14 小时前
Python模块简介
开发语言·python
忘忧记14 小时前
Fixture详解
开发语言·python
赵谨言14 小时前
地球磁场干扰噪声减弱声波对抗测量系统研究进展:近十年中英文文献综述
大数据·开发语言·经验分享
jyan_敬言14 小时前
【算法】高精度算法(加减乘除)
c语言·开发语言·c++·笔记·算法
树獭叔叔14 小时前
内存价格被Google打下来了?: TurboQuant对KVCache的量化
算法·aigc·openai
echome88814 小时前
Python 装饰器实战:用@syntax 优雅地增强函数功能
开发语言·python