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

The 2022 ICPC Asia -C

  • The 2022 ICPC Asia Tehran Regional Contest

题目描述

Amin 经常在笔记本上记录股票价格,数据点记为 \((t_i, p_i)\),其中 \(p_i\) 是第 \(t_i\) 天的价格。这些数据点序列构成了一个分段线性函数 \(F\)(即折线图),展示了价格的历史变化。\(F\) 通过直线段连接每一对相邻的点。如果某一天 \(t\) 没有记录价格,则可以用 \(F(t)\) 作为估计值。

随着记录的数据越来越多,Amin 决定通过丢弃一些数据点来减少数据量,并用剩下的点构建一个新的分段线性函数 \(F'\)\(F'\) 被称为 \(F\) 的“简化版”。

Amin 希望 \(F'\) 能很好地近似 \(F\)。为此,他定义了一个误差度量方式:

  • \(F\) 定义在严格递增的时间序列 \(L = \langle t_1, \dots, t_n \rangle\) 上。

  • \(F'\) 定义在 \(L\) 的子序列 \(L' = \langle t'_1, \dots, t'_m \rangle\) 上,其中 \(t'_1 = t_1\)\(t'_m = t_n\)(即必须保留起点和终点)。

  • 对于 \(F'\) 中的点,其价格保持不变,即 \(F'(t'_i) = F(t'_i)\)

  • 误差定义为:对于所有原始点 \(1 \le k \le n\),在 \(t_k\) 时刻 \(F'\)\(F\) 之间的最大垂直距离,即 \(\max |F'(t_k) - F(t_k)|\)

目标:给定一个误差容限 \(\delta\),求满足误差不超过 \(\delta\) 的情况下,\(F'\)最小尺寸 \(m\)(即最少保留多少个点)。

N只有2000,可以考虑dp

设dp[i]为前i个点选最少的点

思考如何转移,发现两个点之间存在一种连和不连的关系

假设 \(j<i\) 且 j 与 i 之间满足限制,可以连边,那么转移方程为 $ dp[i]=min(dp[i],dp[j]+1) $

考虑如何满足条件,我们对 $ (X_j+E,Y_j)$ $ (X_j-E,Y_j)$ \((X_j,Y_j)\) 和i连边,斜率分别为\(K_a,K_b,K_c\) 如果满足

\(K_b<K_c<K_a\) 则可以满足这个限制,在不断减小集合,如果集合空了,就直接break

#include <bits/stdc++.h>
using namespace std;
#define fr first
#define se second
int n,dp[2005],E;
pair<int ,int >p[2005];
void solve() {cin >> n;for (int i = 1; i <= n; i++) {cin >> p[i].fr >> p[i].se;}cin >> E;memset(dp, 0x3f, sizeof(dp));dp[1] = 1;for (int i = 2; i <= n; i++) {dp[i] = i;double L = -1e18, R = 1e18;for (int j = i - 1; j >= 1; j--) {double k = 1.0 * (p[j].se - p[i].se) / (p[j].fr - p[i].fr);if (L <= k && k <= R) {dp[i] = min(dp[i], dp[j] + 1);}double kl = 1.0 * (p[j].se + E - p[i].se) / (p[j].fr - p[i].fr);double kr = 1.0 * (p[j].se - E - p[i].se) / (p[j].fr - p[i].fr);L = max(L, kl);R = min(R, kr);if (L > R) break;}}cout << dp[n] << endl;
}
int main() {solve();return 0;
}
http://www.jsqmd.com/news/732044/

相关文章:

  • 2026年3月评价好的伟昌铝型材实力厂家推荐,断桥推拉窗/菲迪斯门窗/工程门窗/系统窗,伟昌铝型材产品怎么选择 - 品牌推荐师
  • VSCode 2026国产化适配倒计时:2026年Q2起党政机关采购将强制要求“源码级可信构建链”,你还在用x86预编译包?
  • 游戏音频一键解密:acbDecrypter完整指南,轻松提取加密音频资源
  • 深度学习模型集成:策略、实现与优化实践
  • 中天全钢防静电地板 | 高承重 | 抗腐蚀 | 长效耐用 - 江苏中天庄美荃
  • 开源AI助手OpenClaw社区文档站:Next.js与Fumadocs技术实践
  • 即梦去水印手机版怎么操作?即梦手机如何去掉水印?2026实测有效方法全解析 - 科技热点发布
  • 数学建模老手揭秘:AHP层次分析法在美赛/国赛中的‘潜规则’与高阶骚操作
  • Spawnfile:统一自主智能体定义,实现跨运行时部署标准化
  • 基于MCP协议的Neo4j图数据库AI接口开发实战
  • 2026下半年市场洞察与气体流量计行业知名品牌实力与性价比深度对比 - 品牌推荐大师1
  • python bokeh
  • 从三角波到正弦波:聊聊模拟电路中那些有趣的“波形变形记”与ICL8038芯片实战
  • 从AUX CH到主链路:深入拆解DP1.2的“双通道”通信机制与实战应用
  • 用Python实战遗传模拟退火算法:手把手教你搞定旅行商问题(附完整代码)
  • 国家中小学智慧教育平台电子课本解析工具:一站式PDF下载终极解决方案
  • 如何3分钟免费解密微信聊天记录?WechatDecrypt终极指南
  • 带 CSS 样式模式的甘特图开发代码|Highcharts Gantt高级开发示列
  • 2026年3月目前服务好的粘钉一体机厂商口碑推荐,行业内粘钉一体机选哪家 - 品牌推荐师
  • SpringBoot项目实战:用Cola4.0重构订单系统,告别Controller-Service-DAO的老套路
  • 2026 年最强 AI 编程助手?OpenAI Codex 零基础入门指南
  • GM(1,1)模型实战:用Python预测下个月网站流量,我的数据真的够用吗?
  • 技术深度解析:VADER Sentiment情感分析引擎的词典驱动与规则融合架构
  • 终极指南:用PianoPlayer智能指法生成器快速提升钢琴演奏水平
  • 创业公司如何利用统一 API 快速集成多种大模型能力
  • 用VBA集成OpenAI API,在Excel中打造你的AI助手
  • 利用Taotoken访问控制功能,安全管理团队内部AI资源使用
  • 视觉语言模型架构与CVPO优化技术解析
  • 供应链专员考SCMP能升经理吗 - 众智商学院官方
  • 别再死记硬背了!用Wireshark抓包实战解析OPC UA over TCP握手过程