【S - Making the Grade】

48、住宅抵押贷款支持证券的定价、风险评估与结构化设计 本文深入探讨了住宅抵押贷款支持证券(RMBS)的定价、风险评估与结构化设计。内容涵盖提高定价准确性的方差缩减方法,如准蒙特卡罗序列的应用;分析RMBS面临的利率风险、信用风险和模型风险,并提出相应的度量与应对策略;介绍利用动态规划优化CMO分层结构以最大化发行利润的方法。同时总结了RMBS的基本类型、定价流程及市场发展趋势,为投资者和发行人提供全面的决策支持。 阅读详情

思路:

  • 动态规划+离散化。
  • 数据范围过大,需要离散化:A【】是原数组,U【】是去重数组,dp【】是代价。
  • 心路历程:
    1. 最核心的:每改一个数必定不会改成一个在全数组中从未出现过的新数。(dp 依据)
    2. 令 dp[i][j] 代表前 i 个数符合某规则并且将最后一个元素改成数字 j 所付出的总代价,得到一个 TLE。
    3. 使用滚动数组,将 dp[maxn][maxn] 改成一维,仍然 TLE。
    4. 使用变量 PRESUM,降低时间复杂度。
  • 注意:
    1. 两种规则(不升\不降)只需要一次 reverse。
    2. 用到的STL:unique、reserve、min_element 。

代码:

  • 朴素dp:TLE
​//TLE


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> 
#define INF 0x3f3f3f3f

using namespace std;

const int maxn = 2005;

int N;
int M;
int ans;
int A[maxn];
int U[maxn];
int dp[maxn][maxn]; 

int SOLVE(){
	for(int i=0;i<M;i++)
		dp[0][i] = abs(A[0] - U[i]);
	for(int i=1;i<N;i++){
		for(int j=0;j<M;j++){
			int MIN = INF;
			for(int k=0;k<=j;k++)//前面的(i-1)个数优化到全部(x)于U[j]的非(x)序列 的代价 
				MIN = min(MIN , dp[i-1][k]);
			dp[i][j] = MIN + abs(A[i] - U[j]);
		}
	}
	return *min_element(dp[N-1] , dp[N-1] + M);
}

int main(){
	cin>>N;
	for(int i=0;i<N;i++)
		cin>>A[i] , U[i] = A[i];
	sort(U , U + N);
	M = unique(U , U + N) - U;
	ans = INF;
	ans = min(ans , SOLVE());
	reverse(U , U + N);
	ans = min(ans , SOLVE());
	cout<<ans<<endl;
	return 0;
}​
  • 滚动数组:TLE
​//TLE


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> 
#define INF 0x3f3f3f3f

using namespace std;

const int maxn = 2005;

int N;
int M;
int ans;
int A[maxn];
int U[maxn];
int dp[maxn]; 

int SOLVE(){
	memset(dp , 0 , sizeof(dp));
	for(int i=0;i<N;i++){
		for(int j=M-1;j>=0;j--){
			//注意需要改成倒序
			int MIN = INF;
			for(int k=0;k<=j;k++)//前面的(i-1)个数优化到全部(x)于U[j]的非(x)序列 的代价
				MIN = min(MIN , dp[k]);
			dp[j] = MIN + abs(A[i] - U[j]);
		}
	}
	return *min_element(dp , dp + M);
}

int main(){
	cin>>N;
	for(int i=0;i<N;i++)
		cin>>A[i] , U[i] = A[i];
	sort(U , U + N);
	M = unique(U , U + N) - U;
	ans = INF;
	ans = min(ans , SOLVE());
	reverse(U , U + N);
	ans = min(ans , SOLVE());
	cout<<ans<<endl;
	return 0;
}​
  • PRESUM:79ms 748kB
​//79ms		748kB


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm> 
#define INF 0x3f3f3f3f

using namespace std;

const int maxn = 2005;

int N;
int M;
int ans;
int A[maxn];
int U[maxn];
int dp[maxn]; 

int SOLVE(){
	memset(dp , 0 , sizeof(dp));
	for(int i=0;i<N;i++){
		int PRESUM = INF;
		for(int j=0;j<M;j++){
			PRESUM = min(PRESUM , dp[j]);
			dp[j] = PRESUM + abs(A[i] - U[j]);
		}
	}
	return *min_element(dp , dp + M);
}

int main(){
	cin>>N;
	for(int i=0;i<N;i++)
		cin>>A[i] , U[i] = A[i];
	sort(U , U + N);
	M = unique(U , U + N) - U;
	ans = INF;
	ans = min(ans , SOLVE());
	reverse(U , U + N);
	ans = min(ans , SOLVE());
	cout<<ans<<endl;
	return 0;
}​
PCL 读取和保存点云 PCL (Point Cloud Library) 是一个用于处理 3D 点云数据的开源库。在处理点云数据时,常见的任务包括点云的读写和可视化。PCL 提供了强大的 IO 模块来读取和写入各种格式的点云文件,并且提供了可视化模块来对点云进行渲染和显示。点云的读写与显示是很多 3D 数据处理任务的基础步骤,通过这些步骤,可以对点云进行预处理、分析和操作。 阅读详情

相关推荐

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 376

POJ 3666 Making the Grade——有难度的动态规划

这道题目是运用动态规划解决的,我看很多博客都没有解释透彻,在这里我将详细地解释这道题的原理及做法

随意凯的博客 341

Windows 11最新WDK安装避坑指南:从Visual Studio配置到KMDF驱动开发

本文提供了在Windows 11系统上进行KMDF驱动开发的完整环境搭建与实战指南。针对最新WDK与Visual Studio的配置变化,详细解析了从独立安装WDK/SDK、创建首个KMDF驱动项目,到编译排错、部署调试的全流程,帮助开发者高效避坑,顺利开启Windows内核开发。

weixin_29302047的博客 526

poj 3666 Making the Grade (动态规划)

题目链接; 题目大意: 给定一个序列,以最小代价将其变成单调不增或单调不减序列,这里的代价看题目公式。 (但是我看网上的代码均是将其变成单调不减序列  ) 思路:DP 用dp[i][j]表示:前i个数构成的序列,这个序列最大值为j,dp[i][j]的值代表相应的cost。 所以状态转移方程如下: dp[i][j]=abs(a[i]-b[j])+min(dp[i-1][k]);

qq_36782366的博客 1528

数字电视中的AD(Audio Description)音频描述技术详解

AD(Audio Description)音频描述是一种辅助技术,旨在帮助视障人士更好地理解视觉内容。通过在节目或视频的自然停顿处插入额外的语音叙述来解释屏幕上的视觉信息,如人物动作、场景变化、文字说明等,从而让视力受损的人士也能获得完整的观影体验。AD服务不仅限于电视广播,也广泛应用于电影、剧院表演、在线视频平台等领域。PID:用于标识和区分不同的音频流。PMT表:提供每个音频流的详细信息,包括PID、编解码器类型和语言代码。时间戳:PTS和DTS用于同步音频与视频内容。解复用。

以实战经验介绍行业知识 740

如何在 SAPGUI 里显示上传到 ABAP 服务器的 PDF 文件

在 SAPGUI 里显示 PDF 文件是实际项目中一个很有用的需求。因为在 SAP 实际业务场景中,有大量的流程会生成 PDF 格式的数据。把这种类型的数据输出显示在 SAPGUI 里,方便最终用户查看。本教程后续步骤,还会向大家介绍如何使用 ABAP 代码生成 PDF 格式的数据。本步骤只是简单的将本地 PDF 文件,上传到 ABAP 系统并显示在 SAPGUI 里。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2686

动态规划-POJ 3666 Making the Grade

POJ 3666题目大意如下: 给出N个土堆的高度,现在知道对每个土堆的高度作修改,不管是增高土堆的高度还是减少土堆的高度,其花费都是一样的,改变了H高度,就会产生H的花费。 现在要求是的土堆的高度呈现一个单调的变化趋势,设计方案,求出最小的花费。 第一考虑是使用DP,然而DP数组的设置又是一个问题,还是从原来的问题着手:对于每个单独的土堆i来讲,它的最大允许高度不是等于i-1就是等于i+1

kornberg_fresnel的博客 709

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

多 Agent 之间如何通信和协调?OpenClaw 的 Gateway 在其中扮演什么角色?

我哎GIS博客 1665

【动态规划】POJ_3666 Making the Grade

题意 给定长度为NNN的序列AAA,构造一个长度为NNN的序列BBB,满足: 1、BBB非严格单调。 2、最小化∑Ni=1|Ai−Bj|∑i=1N|Ai−Bj|\sum_{i=1}^{N}|A_i-B_j|。 思路 动态规划。 设f[i][j]f[i][j]f[i][j]为前i个数已经构造好了,其中BiBiB_i=j时,S的最小值,我们可以得到动态转移方程: f[i][j]=min{...

GOODPLACE 273

手把手教你学simulink(13.2)--构建一个单相并网逆变器Simulink仿真模型

基于Simulink的单相并网逆变器项目的详细仿真实例。这个项目将重点放在逆变器的详细建模、最大功率点跟踪(MPPT)控制策略、并网控制和仿真分析上。我们将使用MATLAB/Simulink来构建整个系统,并通过具体的代码和模块来实现各个功能。

MHD0815的博客 545

Claude Code 任务编排 头脑风暴与 疯狂拷问:Superpowers vs Grill-me 硬核对比与工程落地

Superpowers和Grill-me是AI编程中的互补工具:Superpowers提供工程化开发流程(从需求梳理到代码审查),确保规范执行;Grill-me通过持续追问帮助厘清需求,避免方向偏差。两者结合形成"构思-拷问-执行"工作流,前者负责方案生成与落地,后者专注需求审查。根据场景选择:个人项目可用Grill-me快速澄清需求,企业项目推荐Superpowers全流程,复杂开发则建议组合使用。它们分别解决"如何落地"和"是否对齐"的问题,共

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 325

POJ-3666 Making the Grade 【动态规划DP+滚动数组】

题目传送门 题目:输入n个数,第i个数字的值为a[i],把第i个数变为j的代价为a[i]-j的绝对值,求把这n个数组成的数列变成单调数列的最小代价。 题解:dp[i][j]表示前i个数最大值为b[j]时的最小代价,即第i个数在总数列中的值为第j小的时候的最小代价。 动态转移方程:dp[i][j]=minn+Abs(a[i]-b[j])。 其中minn=min(dp[i-1][1],dp[i...

君兮月影的博客 299

idea出现 EXCEPTION_ACCESS_VIOLATION (0xc0000005) 的解决方法

idea启动的时候出现如下问题,以为没啥事,就索性关闭 后面再打开idea的时候发现直接闪退,之后打开其他软件,直接蓝屏

码农研究僧的博客 4817

[POJ 3666] S - Making the Grade

首先对高度大小进行排序,d[i][j]表示第i个修改为第j大最少的消耗,dp[i][j] 由dp[i - 1][k] 更新,(1<=k<= j) 代码如下: #include<iostream> #include<algorithm> #include<vector> #define debug(x) cout<<#x<<" is "<<x<<endl #define pb push_back using na

我们仍未知道那天所看见的花的名字。 199

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

S - Making the Grade POJ - 3666

A straight dirt road connects two fields on FJ's farm, but it changes elevation more than FJ would like. His cows do not mind climbing up or down a single slope, but they are not fond of an alternatin...

PinesL 431

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

S - Making the Grade 【滚动数组+线性离散化】

A straight dirt road connects two fields on FJ’s farm, but it changes elevation more than FJ would like. His cows do not mind climbing up or down a single slope, but they are not fond of an alternating

Irish_Moonshine的博客 598

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

POJ 3666 Making the Grade (DP+离散化)

题目地址:POJ3666 dp[i][j]表示第i位时,值为j时的最小代价。因为j太大,由于要改变值的话,变到与之最近的值相同是最优的,所以可以离散化,这样,j对应了各个值得下标。复杂度O(n^2)。 代码如下:#include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algorith

scf0920 1348

POJ 3666 Making the Grade (线性dp,离散化)

Making the Grade&#13; Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other)&#13; Total Submission(s) : 1   Accepted Submission(s) : 1&#13; Problem Description&#13; ...

蔡军帅 344

POJ3666 Making the Grade

POJ3666 Making the Grade 题意: 给定一个长度为n的序列A,构造一个长度为n的序列B,满足b非严格单调,并且最小化S=∑i=1N|Ai-Bi|,求出这个最小值S,1<=N<=2000,1<=Ai<=1e9. 引理:在满足S最小化的情况下,一定存在一种构造序列B的方案,使得B中的数值都在A中出现过。 由此,用一个数组b[i...

weixin_34163741的博客 176

Making the Grade

Making the Grade 给定长度为n的序列\(\{a_i\}\),求构造长度为n的递增序列\(\{b_i\}\),求\(\sum_{i=1}^n|a_i-b_i|\)最小值,\(1 ≤ N ≤ 2,000\)。 解 首先空间与时间不支持你表现\(b_i\)填什么,于是猜测\(b_i\)必然填的为\(a_i\)里的数。 证明: 显然填到第1个数满足条件, 假设前i-1个数满足条件,且为最...

weixin_33796177的博客 392

POJ 3666 Making the Grade DP+离散化思想

Description A straight dirt road connects two fields on FJ’s farm, but it changes elevation more than FJ would like. His cows do not mind climbing up or down a single slope, but they are not fond of ...

RPG_Zero的博客 241

Making the Grade 【dp】

题 A straight dirt road connects two fields on FJ’s farm, but it changes elevation more than FJ would like. His cows do not mind climbing up or down a single slope, but they are not fond of an alternating succession of hills and valleys. FJ would like to ad

weixin_53623850的博客 380

UVa 381 Making the Grade

本文介绍了 $\texttt{Mr. Chips}$ 的评分方案及其程序实现。方案涉及多步骤计算:1) 学生测验成绩处理(去掉最低分后求平均);2) 班级平均分和标准差计算;3) 奖励分调整(每2分提升平均分3个百分点);4) 根据标准差划分等级(A-D);5) 出勤调整(缺勤降级/全勤升级);6) 最终转换为绩点并计算班级平均绩点。所有计算过程需四舍五入到十分位。程序使用C++实现,处理输入数据后按规则输出各班级平均绩点。

寂静山林 215

Making the Grade 路面修整

「POJ 3666」Making the Grade 路面修整 1 算法标签 dp动态规划,滚动数组优化 2 题目难度 提高/提高+ 3 题面 「POJ 3666」Making the Grade 路面修整 4 分析题面 4.1 简要描述 给出数列AAA, 求非严格单调不上升或单调不下降, 且S=∑i=1N∣Ai−Bi∣S=\sum^N_{i=1}|A_i-B_i|S=∑i=1N​∣Ai​−Bi​∣ 最小的序列BBB,输出SSS 4.2 模型转换 输入N, 然后输入N个数,求最小的改动这些数使之成非严格递增

young_1217的博客 348

USACO Making the Grade

洛谷 P2893 [USACO08FEB]修路Making the Grade https://www.luogu.org/problemnew/show/P2893 JDOJ 2566: USACO 2008 Feb Gold 1.Making the Grade https://neooj.com:8082/oldoj/problem.php?id=2566 POJ Maki...

anhaoti3785的博客 265

Making the Grade POJ - 3666

题目链接: https://vjudge.net/contest/68966#problem/S 题意: 给你一个数组,修改成单调递增或单调递减(非严格),算出修改贡献值, | A 1 - B 1| + | A 2 - B 2| + … + | AN - BN | 思路: 修改后的值肯定原数组里面有的数,DP #include<cstdio> #include<cstring&g...

mzip的博客 263
上一篇: 【R - Milking Time】
下一篇: 【动态规划】
Masker_43
博客等级 码龄8年 5粉丝 143原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值