By Elevator or Stairs? (CodeForces - 1249E,线型DP)

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx 科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。 立即下载

一.题目链接:

CodeForces-1249E

二.题目大意:

有 n 层楼,上楼有两种方式.

a[i] 表示 走楼梯 从 i 层到 i + 1层所用时间.

b[i] 表示 坐电梯 从 i 层到 i + 1层所用时间.

其中,每次坐电梯还需花费 c 时间.

求从 1 层到 1,2,3,...,n 层的所用最短时间.

三.分析:

很容易想到DP转移方程.

dp[i] = min(dp[i], min(dp[j] + sum_a[i - 1] - sum_a[j - 1], dp[j] + sum_b[i - 1] - sum_b[j - 1] + c))

可惜复杂度 O(n^2),骗不过去测评姬...

考虑优化.

观察到式子可写为

dp[i] = min(dp[i], min(sum_a[i - 1] + (dp[j] - sum_a[j - 1]), sum_b[i - 1] + (dp[j] - sum_b[j - 1]) + c))

因此,我们可以维护 dp[j] - sum_a[j - 1] 与 dp[j] - sum_b[j - 1] 的最小值.

复杂度降为 O(n),嘿嘿嘿.

四.代码实现:

#include <bits/stdc++.h>
using namespace std;

const int M = (int)2e5;
const int inf = 0x3f3f3f3f;

int a[M + 5];
int b[M + 5];
int dp[M + 5];

int main()
{
    int n, c;
    scanf("%d %d", &n, &c);
    for(int i = 1; i < n; ++i)
    {
        scanf("%d", &a[i]);
        a[i] += a[i - 1];
    }
    for(int i = 1; i < n; ++i)
    {
        scanf("%d", &b[i]);
        b[i] += b[i - 1];
    }
    memset(dp, inf, sizeof(dp));
    dp[1] = 0;
    int A = inf, B = inf;
    for(int i = 1; i <= n; ++i)
    {
        dp[i] = min(dp[i], min(a[i - 1] + A, c + b[i - 1] + B));
        A = min(A, dp[i] - a[i - 1]);
        B = min(B, dp[i] - b[i - 1]);
    }
    for(int i = 1; i <= n; ++i)
        printf("%d%c", dp[i], i == n ? '\n' : ' ');
    return 0;
}

 

PotPlayer自用皮肤 自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。 立即下载

相关推荐

【Halcon】双目立体视觉引导机械手有序抓取,案例分享

本文介绍了一个基于双目视觉的工件定位与抓取系统。该系统使用两个工业相机组成双目视觉系统,通过标定获取相机参数,采用模板匹配算法识别任意摆放且可能交叠的工件。重点阐述了三维坐标获取方法,特别是通过Z方向高度实现有序抓取的策略。文章详细说明了系统搭建、双目标定、模板创建等关键步骤,并展示了特征点匹配和定位结果。该案例为初学者和开发者提供了双目视觉系统的基本实现参考,展示了机器视觉与机械手协同工作的典型应用场景。

机器视觉从业者 2490

By Elevator or Stairs?

By Elevator or Stairs? You are planning to buy an apartment in a n-floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each floor you want to know the minimum ...

扬弃 471

基于IC617下Layout XL的使用

基于IC617下Layout XL的使用

weixin_43816759的博客 1万+

CodeForces 1249E By Elevator or Stairs? (dp)

Description: \quadYou are planning to buy an apartment in a n-floor building. The floors are numbered from 111 to n from the bottom to the top. At first for each floor you want to know the minimum tot...

邵光亮的博客 299

Verilog仿真时读取bin文件模拟输入数据流,将输出数据流写入bin文件

需要关注的是,一般会省略文件起始地址和读取长度,那么mem为多大,就会从文件中读取多大的数据出来填充mem。如果只需要读取一次文件,那么代码到此就结束了,但是如果还需要每一帧都读取该文件转换为数据流,则在循环里判断新的一帧信号是否到来,在新的一帧再次打开一次文件,从头开始读取数据。

qq_41137205的博客 2772

URP Shader编程之自定义后处理单pass渲染(URP 14.x)

❌ 不要在里拿✅ 只在里拿RendererFeature 生命周期RTHandle 设计Blitter 的真实语义Shader 输入来源。

qq1342753906的博客 607

【CodeForces 1249E --- By Elevator or Stairs? 】

【CodeForces 1249E --- By Elevator or Stairs? 】 Description You are planning to buy an apartment in a n-floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each...

来日浅谈的博客 940

安时积分法和开路电压法结合估算锂电池SOC

基于安时积分法和开路电压法结合的锂电池SOC估计Simulink仿真建模,利用安时积分法计算放电过程中的SOC,在搁置状态利用开路电压法进行SOC修正。

qq_39304296的博客 2553

By Elevator or Stairs? (乘电梯还是楼梯?)

http://codeforces.com/problemset/problem/1249/E 题意:n层楼,a[i] (0<i<n)表示从 i 楼到 i + 1 楼走楼梯的时间,b[i] (0<i<n)表示从 i 楼到 i + 1 楼乘电梯的时间,其中每一次乘电梯需要等待 c 时间,求从1楼到 1 ~ n 层楼所需要的最短时间 思路:二维数组d...

嵩韵儿 802

ComfyUI 提示Allocation on device 显存占满的解决方法及秋叶整合包的优化方法

最近在玩ComfyUI的时候,发现一个让人崩溃的问题——VRAM一直占满,最终报错: 简单来说,就是显卡显存溢出了,导致程序无法继续运行。尤其是一些大模型或者复杂工作流,很容易让显存飙升到极限。那怎么办?直接在启动命令后加上 ,例如: 这个参数的作用是啥? 默认情况下,ComfyUI会尽量让模型一直留在显存里,即使有些部分暂时用不到,导致显存迟早被填满。而 可以强制让ComfyUI把数据卸载到常规内存,减少显存占用。如果你的显存真的不够用,还可以再加 参数: 这个参数的意思就是开启低显存模式,进一步优化

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

DA14531之如何Debug(在线调试、Jlink仿真、串口打印)

在线调试和串口打印调试。在线调试是Keil软件配合Jlink编译、烧录、仿真为一体的,其操作包括:运行、停止、打断点,单步运行等。而串口打印调试,只需打开相关配置,让arch_printf()函数正常输出串口数据。若想在初始化完成后打印arch_printf(“goto Loop\r\n”);波特率为115200,接收到串口消息goto Loop。连好线后,点击仿真按钮,在线Jlink调试。

hejinwu1314的博客 1792

Codeforces Round #595 (Div. 3) E. By Elevator or Stairs?

题意 n层楼,a[i] (0<i<n)表示从 i 楼到 i + 1 楼走楼梯的时间,b[i] (0<i<n)表示从 i 楼到 i + 1 楼乘电梯的时间,其中每一次乘电梯需要等待 k 时间,楼梯和电梯一次均可上从 x 楼上升到 y 楼 ( y != x ),即一次可以通过楼梯或电梯上升任意层数 。求从1楼到 1 ~ n 层楼所需要的最短时间 思路 dp题:二维数组dp[i]...

冷漠然的博客 682

17、神经网络训练算法与高阶模糊Cohen - Grossberg神经网络稳定性分析

本文介绍了一种新的数据驱动算法用于神经网络训练,该算法继承三次样条权重函数的优点,具有简单架构和良好泛化性能,并通过并行机制显著提升训练速度。同时,研究了高阶模糊Cohen-Grossberg神经网络(HOFCGNN)在可变及无界延迟下的稳定性,利用M矩阵理论和向量Lyapunov函数方法,证明了系统平衡点的存在性、唯一性和全局指数稳定性。研究成果为神经网络的高效训练与稳定应用提供了理论支持和技术路径。

b9c0d的博客 147

By Elevator or Stairs?(从1楼到每层楼的最少时间)(动态规划)

题目链接:CodeForces - 1249E 题目大意:你现在所处位置在1楼,给出你两组数据,第一组为从i到i+1走楼梯所需要的时间,第二组为从i到i+1坐电梯所需要的时间,从走楼梯转向电梯需要等c时间。从1楼向二楼走也需要等c时间。 思路:动态规划。 状态转移方程: dp[i][0]=min(dp[i-1][0]+b[i-1],dp[i-1][1]+b[i-1]+c); dp...

XYBDX的博客 466

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

codeforces 两道(dp、思维)(C.Ivan the Fool and the Probability Theory)( E. By Elevator or Stairs?)

传送:https://codeforces.com/contest/1248/problem/C 题目:n x m的网格 (10^5),给网格涂上白黑两色,要求一种颜色网格最多有一个相同颜色的网格和它相邻,问总共有多少种涂色方案?答案对10^9取模。 思路:说实话,当时没想出来,但知道应该是dp。 我们可以从第一行开始考虑。 1. 如果第一行有 两个相同颜色格子相邻 的情况,那么与这行相邻...

wwwlps的博客 479

Devexpress16.2.6破解工具

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

By Elevator or Stairs? --------CodeForces - 1249E

You are planning to buy an apartment in a n -floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each floor you want to know the minimum total time to reach i...

weixin_45177251的博客 305

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

By Elevator or Stairs(动态规划)

原题链接 题意: 一栋楼共n层,从第i层到第i+1层走楼梯和坐电梯需要的时间不同。走楼梯需要的时间为ai,坐电梯存在一个等待时间c(如果从下一层上来靠走的楼梯或者位于第一层),坐电梯也需要bi的时间。问到达第i层需要的最短时间是多少。 思路: 首先应该明确用动态规划的思想来解题,用贪心的话某些情况可能解决不了。 状态分析:定义上楼的状态和两种方式上楼所需的时间dp[1010][2],a[1010]...

riversu 708

E. By Elevator or Stairs?

链接:https://codeforces.com/contest/1249/problem/E You are planning to buy an apartment in ann-floor building. The floors are numbered from11tonnfrom the bottom to the top. At first for each floor...

Luoriliming的博客 440

codeforces A. Elevator or Stairs? B. Appending Mex

A. Elevator or Stairs? 分别计算乘电梯和走楼梯所需时间再比较即可(电梯门需要开闭三次) #include<iostream> #include<math.h> #include<stdio.h> using namespace std; int main() { int x,y,z,t1,t2,t3; while(scan...

饮酒在风里的博客 322

Codeforces 1249E By Elevator or Stairs?【dp】

传送门:By Elevator or Stairs? By Elevator or Stairs? You are planning to buy an apartment in a n-floor building. The floors are numbered from 1 to n from the bottom to the top. At first for each floo...

Waiting For You 505

CodeForces - 1249E

You are planning to buy an apartment in a nn-floor building. The floors are numbered from 11 to nn from the bottom to the top. At first for each floor you want to know the minimum total time to reach ...

Starry_Sky_Dream的博客 330

CodeForces - 1249E 楼梯和电梯

题意:第一行输入n和c,表示有n层楼,电梯来到需要时间c 输入两行数,每行n-1个,表示从一楼到二楼,二楼到三楼.....n-1楼到n楼,a[ ] 走楼梯和 b[ ] 乘电梯花费的时间 思路:动态规划,考虑几种状态,假设当前在i-1层,想要去i层,有两种方法,乘电梯,走楼梯。 i-1层要考虑由什么状态到i-1层的,电梯和楼梯,如果是电梯,走楼梯或者乘电梯直接加上需要的时间即可,如果是楼梯状态...

HappyCode 363

Codeforces 1249D2 Too Many Segments (hard version) 【贪心】

传送门:Codeforces 1249D2 Too Many Segments (hard version) time limit per test: 2 seconds memory limit per test: 256 megabytes You are given n segments on the coordinate axis OX. Segments can intersec...

Waiting For You 821

CodeForces - 1249E-By Elevator or Stairs?(dp)

E. By Elevator or Stairs? 题目大意:有个n层楼的房子,要求通过2种操作花费最少时间到达楼顶,一种方式是走楼梯,另一种是坐电梯。 解题思路:这2个操作有个区别是走楼梯不需要等待时间,而坐电梯需要等待时间。也就是说一个连续区间内只需要加一次等待时间。在上楼的过程中,我们有2种选择,走楼梯和坐电梯。那么由等待时间可以想到,我们要上楼时是在楼梯上还是在电梯中,因为在电梯中继续选择...

weixin_43871404的博客 248

CodeForces-1249E By Elevator or Stairs? (动态规划求最短时间)

到第二层,走楼梯需要7,做电梯需要6,但是有启动时间2,所以从第一层到第二层走楼梯。若到某一层是做电梯上来的,再到高一层若继续做电梯,则不需要考虑启动时间。若到某一层是走楼梯上来的,再到高一层若想坐电梯需要考虑启动时间。您想知道从第一层(底层)到达每一层所需的最短总时间。在一次移动中,您可以通过两种不同的方式从您所在的楼层。dp[i][0]:表示到第i层是走楼梯到达的。dp[i][1]:表示到第i层做电梯到达的。,分别表示大楼的层数和乘坐电梯的时间。层所需的最短总时间。层所需的最短总时间。

zaiyang遇见 424

【CodeForces 1249B2 --- Books Exchange (hard version)】

@[TOC](【CodeForces 1249B2 — Books Exchange (hard version)】) Description The only difference between easy and hard versions is constraints. There are n kids, each of them is reading a unique book. At t...

来日浅谈的博客 867
上一篇: ROADS (POJ - 1724,分层图 + BFS)
下一篇: 最优贸易(算法竞赛进阶指南,分层图最短路)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值