A70684 | 取数
来源编程题
时间限制1s
内存限制16MB
通过 / 提交0/0
题目描述
设有 N 个正整数(1 ≤ N ≤ 50),其中每一个均是大于等于 1、小于等于 300 的数。
从这 N 个数中任取出若干个数(不能取相邻的数),要求得到一种取法,使得到的和为最大。
例如:当 N=5 时,有 5 个数分别为:13,18,28,45,21;
此时,有许多种取法,如:
13,28,21 和为 62;
13, 45 和为 58;
18, 45 和为 63;
\dots
输入格式
第一行是一个整数 N;
第二行有 N 个符合条件的整数。
输出格式
一个整数,即最大和。
输入输出样例
输入 #1
5 13 18 28 45 21
输出 #1
63
思路
「取数」先读懂题意与样例,判断是模拟、枚举、贪心还是搜索/DP,再分步实现。
步骤
1. 仔细读输入输出与样例,确定数据范围。
2. 选择合适算法并处理边界。
3. 按格式输出,注意多组数据与精度。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?