洛谷P1108(低价购买)

[DP] 低价购买 洛谷P1108 题目描述“低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价( 2^{16}216 范围内的正整数),你可以选择在哪些天购买这支股票。每次购买... 阅读详情

题目:
“低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^{16}2
16
范围内的正整数),你可以选择在哪些天购买这支股票。每次购买都必须遵循“低价购买;再低价购买”的原则。写一个程序计算最大购买次数。

这里是某支股票的价格清单:

日期 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8, 9 ,10 ,11, 121,2,3,4,5,6,7,8,9,10,11,12

价格 68 ,69 ,54, 64,68 ,64 ,70 ,67 ,78 ,62, 98, 8768,69,54,64,68,64,70,67,78,62,98,87

最优秀的投资者可以购买最多44次股票,可行方案中的一种是:

日期 2 , 5 , 6 ,102,5,6,10

价格 69, 68 ,64 ,6269,68,64,62

这是一套求相对位置不变的情况下位于相对位置后面的数比位于相对位置前面的数小的最大字串并求相同最大字串的方案数:
可以用一个f数组存其到目前下标为止的所有满足上列条件的最长长度,用t表示该下标位置有多少最长长度相同的方案,通过一次遍历在前一个的基础上判断就好,是一道简单的dp

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int a[5005], f[5005], t[5005];
int main() {
	int n, ans = 1, ans2 = 0;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		f[i] = t[i] = 1;
	}
	for (int i = 2; i <= n; i++) {
		for (int j = 1; j < i; j++) {
			if (a[j] > a[i]) {
				if (f[i] < f[j] + 1)f[i] = f[j] + 1, t[i] = t[j];
				else if (f[i] == f[j] + 1)t[i] += t[j];
			}
			if (a[j] == a[i])f[j] = t[j] = 0;
		}
		ans = max(ans, f[i]);
	}
	cout << ans;
	for (int i = 1; i <= n; i++)if (f[i] == ans)ans2 += t[i];
	cout << " " << ans2;
	return 0;
}
洛谷OJ - P1108 - 低价购买(LIS+方案数) 题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^16范围内的正整数),你可以选择在哪些天购买这支股票。每次购买都必须 阅读详情

相关推荐

COCO数据集缺失文件补全方法

本文代码是以目标检测(object detection)和实例分割(instance segmentation)任务的标签文件为例,即文件。其他任务的标签文件内容略有不同,但是图片来源表示字段完全相同,因此代码可通用。另外如果是非2017版本COCO应该也通用。msgspec是一个高性能的序列化和验证库,支持 JSON、MessagePack、YAML 和 TOML 等多种格式。高性能:在常见协议的编码/解码中表现出色,通常比其他库快10-80倍。零成本的模式验证。

qq_46396470的博客 1994

洛谷-P1108-低价购买

来咯,火速更新👌。

2301_77946044的博客 312

ChatGPT设置密钥后Codex免手机验证:配置顺序与身份凭证复用机制

API Key 是一种用于身份识别的凭证,其核心原理是通过预配置的密钥替代交互式登录流程。在开发工具中,密钥认证优先级通常高于会话认证,当本地存在有效密钥时,工具会直接复用该凭证,从而减少重复验证环节。这种机制的技术价值在于提升开发效率与配置一致性,尤其适用于多设备切换、CI/CD 流水线及编程辅助工具等场景。以 Codex 为例,在 ChatGPT 界面提前配置 API 密钥后,Codex 启动时可读取持久化存储的密钥,避免触发手机号验证,实现身份凭证的跨入口复用。

weixin_33940469的博客 472

P1108 低价购买

题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^16 范围内的正整数),你可以选择在哪些天购买这支股票。每次购买都必须遵循...

qq_38472193的博客 327

Matlab系列之GUI设计基础

Matlab系列之GUI设计基础简介编辑界面菜单设计控件设计控件描述个人理解Matlab转译控件属性【1】外观与行为【2】控件对象的信息【3】回调函数【4】状态信息结束结束更多精彩,等你发现~ 简介 GUI即图形用户界面(Graphical User Interface),人机交互的一种方式,可以简化用户的操作,比如只需要点点窗口上的按键或者菜单选择等等,就可以实现一个复杂的功能,有点类似黑盒的操作吧。 本篇将主要介绍GUI的使用,以及一些功能,后续的篇章再使用GUI来设计实例。 打开GUI可以在Matla

Smart_Devil的博客 5万+

Gazebo仿真UUV水下机器人:从环境搭建到避障算法实战

本文详细介绍了使用Gazebo仿真平台进行UUV水下机器人开发的全流程,涵盖从环境搭建、uuv_simulator配置、传感器集成到核心避障算法实战。通过搭建水下仿真实验室并实现基于激光雷达数据的反应式避障算法,为水下机器人算法验证与开发提供了高效、低成本的解决方案。

weixin_28840591的博客 263

(洛谷 1108)低价购买#线性动态规划#

题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^16范围内的正整数),你可以选择在哪些天购买这支股票。每次购买都必须遵循...

lemondinosaur的博客 489

金属粘结剂喷射3D打印技术:工艺流程与后处理关键

金属粘结剂喷射(Binder Jetting)是一种创新的增材制造技术,通过逐层喷射粘合剂将金属粉末粘结成型,再经过脱脂和烧结等后处理工序获得最终零件。这项技术的核心优势在于无需支撑结构、可实现批量生产,并且材料利用率高。在3D打印领域,金属BJ技术特别适合中小尺寸、结构复杂且表面质量要求高的零件生产。其工艺流程包括前期数据处理、打印生胚阶段、拆包与清粉,以及关键的渗透、脱脂和烧结后处理环节。后处理工艺的控制直接决定了零件的机械性能和尺寸精度,其中烧结工艺尤为关键,需要精确控制温度曲线和气氛环境。金属BJ打

weixin_35751194的博客 83

洛谷 P1108 题解

题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^{16}2 16 范围内的正整数),你可以选择在哪些天购买这支股票。每次购...

qq_33866820的博客 314

如何让 Mac mini 24小时不休眠运行 OpenClaw

如果 OpenClaw 每 5-10 分钟自动退出,launchd 连续 4 次快速重启后会判定为崩溃循环并卸载服务。:方案一(pmset)+ 方案三(launchd)组合使用,既防止系统休眠,又保证 OpenClaw 开机自启和崩溃自动恢复。:caffeinate 只在进程运行期间有效,终端关闭或进程结束后系统恢复正常睡眠策略。这条命令会自动创建 launchd plist 并启用服务,是最推荐的方式。替换为你的实际用户名路径,Node.js 路径也要改成你自己的。确保 plist 中有。

Maynor的博客 2203

芒果YOLO11改进44:主干Backbone篇之MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

MobileViT::结合最新 ICLR2022 顶会|轻量通用的MobileViT结构(一)Transformer,轻量级、通用且移动友好的视觉转换

包括YOLOv5、YOLOv7、YOLOv8等模型改进 370

[题解][洛谷P1108] 低价购买

给定一个序列,求这个序列的最长严格下降子序列的长度和数量,特别的是如果两个子序列只要每个数都相同,无论原来的位置,都算作同一个子序列。

東木的博客 1108

Python 爬虫实战:医学临床指南爬取(含 PDF 解析与结构化存储)

在当今数字化时代,医学临床指南作为医生进行科学诊疗的重要参考资料,包含大量经过临床验证的诊疗路径和建议。这些指南通常发布在权威医学网站上,数量庞大且更新频繁。如何自动化地抓取并存储这些指南,成为医疗数据分析、医学研究以及医疗 AI 模型训练等工作的关键第一步。本文将系统讲解如何利用 Python 爬虫技术从权威医学网站爬取临床指南内容,并实现 PDF 解析与结构化存储。

u014481728的博客 449

洛谷 P1108 低价购买

洛谷 P1108 低价购买 Description “低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2^{16}范围内的正整...

weixin_30614109的博客 151

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

洛谷P1108 低价购买题解

我又双叒叕来了!今天不写ABC的题解,来水一篇洛谷因为……打ABC时,我的大脑:图源:作者手搓dpidp_idpi​表示以第iii个元素结尾的最长下降子序列的长度fif_ifi​表示到iii为止最长下降子序列的个数我一开始没看到要求买这些次数所用的方案数,我直接当成WaterWaterWater来做了,后来才发现的,发现之后,大脑宕机:图源:作者手搓,向 Windows蓝屏致敬关注我,下期再切ABC。

小冻梨的博客 750

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【题解】洛谷P1108 低价购买

题目 洛谷P1108低价购买 题解 此题关键在于计算方案数,如果第i个位置的最长序列长度是由第j个位置更新而来的,则方案数更新方法相同。去重只要当数字相同时,清空其中一个位置的重复信息。 代码 #include <bits/stdc++.h> using namespace std; const int maxn=5e3+5; int n; int a[maxn],f[maxn],cnt[maxn]; //f[i]表示以a[i]结尾的单调数列的最长长度,c

zjgmartin的博客 198

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

P1108 低价购买【洛谷算法习题】

摘要: 本题要求计算股票价格序列中最长严格下降子序列长度及其方案数。采用动态规划方法,定义f[i]为以第i天价格结尾的最大购买次数,t[i]为对应方案数。通过双重循环遍历,当遇到更高价格时更新状态;若价格相同则将前序状态置零以实现去重。最终统计全局最大值及其方案数。算法时间复杂度为$O(n^2)$,适用于$n \leq 5000$的数据规模,准确满足题目对去重方案数的统计要求。

Pretty Boy Fox的博客 548

(dp)洛谷P1108低价购买

洛谷P1108低价购买 思路: 看起来是最长下降子序列,但要考虑方案数,这里卡了好久。方案数也像一个dp,由dp的状态来决定方案的状态。 代码: #include<bits/stdc++.h> #define pii pair<int,int> #define ll long long #define cl(x,y) memset(x,y,sizeof(x)) #defin...

Z7784562的博客 225

算法笔记:洛谷 P1108 低价购买

fif[i]fi:以第iii天价格结尾的最长下降子序列长度。tit[i]ti:以第iii天价格结尾且长度为fif[i]fi的不同方案总数。

2402_89530985的博客 910

洛谷P1108 低价购买 动态规划

洛谷P1108 低价购买 动态规划 题意 求最长下降子序列长度,以及有多少子序列也是这样的长度,完全相同的不算 f[ i ] 表示到第 i 位时最长的下降子序列 t[ i ] 表示 到第i位有多少这样的不相同的 下降子序列 如果 完全相同的也算的话 那么直接状态转移 t[ i ] = t[ i ] + t[ j ] 但是现在完全相同的不算,那么这样怎么算呢,j < ...

weixin_33744854的博客 148

洛谷P1108 低价购买

动规 LIC

SilverNebula的博客 1630
上一篇: 浅谈动态规划(背包问题)
下一篇: 洛谷P1062(数列)
MaplePlane
博客等级 码龄7年 9粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值