UVa 1632 Alibaba (区间dp)

HarmonyOS开发第一步:Dev Eco Studio4.0保姆级安装配置指南(含Node.js环境) 本文提供HarmonyOS开发环境搭建的保姆级教程,重点详解Dev Eco Studio 4.0的安装与配置,并攻克Node.js环境与Ohpm包管理器的关键设置难点。通过清晰的步骤指引,帮助开发者从零开始,高效完成开发环境部署,顺利迈出鸿蒙应用开发的第一步。 阅读详情

题目链接:https://cn.vjudge.net/problem/UVA-1632


题意:给出n个点的坐标及各个点的消失时间,用最短的时间访问所有的点,求这一时间。


思路:因为访问某个点是不费时间的,所以容易知道,访问过的一定是一个连续的区间。所以初步想到用dp[i][j][k]表示已经访问了区间i到j,现在位于k点的最短时间。但这样显然是不行的,时间和空间都容不下。再想发现,这个k是很受限制的。首先,k肯定满足i≤k≤j;再者,如果k在区间(i,j)上(不包含边界),这相当于先要访问完[i,j]然后再从i点或j点回到k,这样也是多余的,因为我们已经访问完了该区间,若再返回该区间内部去,这也是浪费时间的。

          因此,我们用dp[i][j][2]表示已经访问完i到j,当前在i(最后一维为0)或j(最后一维为1)的最短时间,则dp[i][j][0] = min(dp[i+1][j][0] + x[i+1]-x[i], dp[i+1][j][1] + x[j]-x[i]);  dp[i][j][1] = min(dp[i][j-1][1] + x[j]-x[j-1], dp[i][j-1][0] + x[j]-x[i]); 如果算出来发现某个值大于等于那个点的消失时间,则将该值设为INF即可。


#include<cstdio>
#include<cstring>
#include<string>
#include<cctype>
#include<iostream>
#include<set>
#include<map>
#include<cmath>
#include<vector>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
const int INF = 1e8 + 10;
const int maxn = 10000 + 5;
int dp[maxn][maxn][2];
int x[maxn], t[maxn];
int main()
{
    int n;
    while(scanf("%d", &n) == 1) {
       for(int i = 1; i <= n; i++)
         scanf("%d%d", &x[i], &t[i]);
       for(int i = n; i >= 1; i--)
       for(int j = i+1; j <= n; j++) {
         dp[i][j][0] = min(dp[i+1][j][0] + x[i+1]-x[i], dp[i+1][j][1] + x[j]-x[i]);
         if(dp[i][j][0] >= t[i]) dp[i][j][0] = INF;
         dp[i][j][1] = min(dp[i][j-1][1] + x[j]-x[j-1], dp[i][j-1][0] + x[j]-x[i]);
         if(dp[i][j][1] >= t[j]) dp[i][j][1] = INF;
       }
       int ans = min(dp[1][n][0], dp[1][n][1]);
       if(ans < INF) printf("%d\n", ans);
       else printf("No solution\n");
    }
    return 0;
}


   


GJB 5000B二级-II实施基础 本文主要描述GJB 5000B二级II实施基础与GJB 5000A的变化情况,以及过程域各条款的实施要点 阅读详情

相关推荐

Flowable任务节点动态预测:基于任务ID与参数获取下一节点及候选分配策略

本文深入探讨了Flowable工作流引擎中任务节点动态预测功能的实现。通过解析任务ID与运行时参数,模拟流程执行路径,精准预测下一节点及候选用户/组集合,从而提升用户体验与系统透明度。核心在于利用自定义命令实现表达式求值,并深度解析候选者分配策略,确保预测结果与实际流程执行一致。

nnn11的博客 741

uva 1632——Alibaba

题意:直线上有n个点,其中第i个点的坐标是xi,且他会在di秒后消失,阿里巴巴可以从任意位置出发,求访问过所有节点的最短时间,不能输出-1; 思路:01背包问题,dp(i,j,0)表示遍历过i,j区间且最终落在i点的最短时间,dp(i,j,1)是落在j点,然后找到从i和j到达当前的最优值,到达之前点消失则置为INF; code: #include using namespa

坚持不懈 729

管道机器人手臂机械结构设计cad【8张】+三维图+设计说明书+绛重

履带式管道机器人适用于各种管道环境,包括直管道、弯曲管道、水平管道、垂直管道等,其灵活性和适应性使得它可以应对不同形状和尺寸的管道,完成全面的检测和维护工作。管道机器人研究具有重要的现实意义和深远的社会影响,通过提高工作效率、降低人员风险、提升服务质量、节约成本资源和促进科技创新等方面的作用,为现代工程技术领域的发展和进步做出了积极的贡献。管道机器人是一种能够在管道内部执行各种任务的智能机器人,而管道机器人的机械臂对于管道机器人在管道内执行任务的灵活性、稳定性和效率至关重要。

kejigongjiang的博客 943

uva 1632 阿里巴巴

大意:直线上有n个点,其中第i个点的坐标为xi,且它会在di秒后消失。Alibaba可以从直线任意位置出发,求访问玩所有点的最短时间,无解输出No solution. 思路:对所有点按照坐标从小到大排序,发现访问过的点一定是一个连续区间,用d[i][j][0]表示访问了区间(i, j),Alibaba在左端点,d[i][j][1]表示访问了区间(i, j),Alibaba在右端点。 // C

chenhongwei6447的博客 379

2017年电赛题目-自适应滤波器

电赛题目解析之自适应滤波器 首先来看看题目: 2017全国大学生电子设计竞赛题目 这道题有很多发挥空间,本文将介绍三种电路: 数字电位器移相模拟电路 压控移相模拟电路 数字方法 一、数字电位器移相模拟电路 对于前级的加法器比较简单,这里贴出一种使用OPA209实现的常规做法: 输入端分别输入A信号和B信号就可以实现A+B,因为信号频率很低不涉及到阻抗匹配问题,所以这种接法没............

电气小能手的博客 2万+

告别抓包失败!保姆级配置:让Burp+Proxifier稳定抓取任意微信小程序

本文提供了一套完整的Burp+Proxifier配置方案,确保稳定抓取微信小程序数据。从环境准备、工具选型到Burp Suite深度配置和Proxifier精准设置,详细解决了证书安装、进程捕获和乱码解析等核心问题,帮助开发者告别抓包失败,提升调试效率。

weixin_28738165的博客 455

UVA - 1632 Alibaba (区间dp+常数优化)

题目链接 设$dp[l][r][p]$为走完区间$[l,r]$,在端点$p$时所需的最短时间($p=0$代表在左端点,$p=1$代表在右端点) 根据题意显然有状态转移方程$\left\{\begin{matrix}dp[l][r][0]=min(dp[l+1][r][0]+x[l+1]-x[l],dp[l+1][r][1]+x[r]-x[l]);\\ dp[l][r][1]=min(dp[l]...

weixin_30325971的博客 188

STM32实战:5分钟搞定MXL90614红外测温模块的I2C驱动(附完整代码)

本文提供了一份快速集成MLX90614红外测温模块的STM32实战指南。通过详细的软件I2C驱动代码,重点解析了SMBus通信协议、CRC校验及温度数据转换,帮助开发者避开常见陷阱,实现5分钟内完成模块驱动并读取准确温度值。

wasm7browser的博客 353

【Uva 1632】Alibaba

【Link】: 【Description】 直线上有n(n≤10000)个点,其中第i个点的坐标是xi,且它会在di秒之后消失。Alibaba 可以从任意位置出发,求访问完所有点的最短时间。无解输出No solution。 恰好在di秒到的话,不算到 【Solution】 访问到点的时候,因为是秒取点的; 所以最后的答案肯定是一段区间; 按照之...

181

为什么先进工艺需要check那么多corner?

那么hold slack = launch clock path delay + data path delay - capture_clock_path_delay = -capture_clock_path_delay,也就是说,capture clock path delay越大,hold越难满足。而且,我们在设计的时候,一般clock频率都会过约,所以是有较大的margin的。有的foundry还会对rc的取值范围进行了约束,如cworst_T,采用的是1.5 sigma的取值范围。

芯冰乐 2087

使用GitLab限制开发者使用CI/CD的权限,三种方案

使用三种方案来限制开发人员的CI/CD权限。

知无涯 5098

Alibaba UVA - 1632(区间dp+滚动数组)

题目链接:点击打开链接 题目思路:有点久没写区间dp了,居然在纠结选哪一个作为起点,被自己蠢死,对于这道题来说根本不用关心这个问题,因为区间dp本来就枚举了每一个从小到大的区间,想通这一点,剩下的就很无脑了,唯一需要学习的就是这里用滚动数组优化内存的方法,对于区间dp我们可以发现每一次转移都这跟上一次区间长度有关,也就是用区间长度的递增来递推的,那么就很容易知道前面的长度基本上没什么用了,所以可

w571523631的博客 277

TC3XX - MCAL知识点(三十八):AURIX™ TC3xx 的EDSADC实现旋变解码功能(理论知识+手册阅读)

本文系统梳理了英飞凌AURIX系列芯片EDSADC模块的技术手册内容。首先概述了该模块的架构特点,包括模拟/数字输入通道和总线地址信息。重点解析了手册中的关键知识点:1)模拟量输入的差分/单端模式;2)数字量连接的触发、数据源和时钟源选择;3)功能配置中的寄存器操作注意事项;4)输入通道的三种数据来源模式;5)滤波器链的组成和工作原理;6)旋变应用中的载波信号生成和延迟补偿机制。最后对SRM、SAUL、SBLL等专业术语进行了详细解释。全文为理解EDSADC模块的硬件特性和配置方法提供了系统的技术参考。

梦想技术家 594

[UVA 1632]Alibaba[区间DP]

题目链接:[UVA 1632]Alibaba[区间DP] 题意分析: 有n个宝藏,每个都在一个位置p[i],在规定的时间t[i]就会消失。阿里巴巴要在宝藏消失前收集齐所有宝藏,问:有方法吗?有的话最少多少秒? 解题思路: 嘛,取宝藏肯定是一个连续的区间都取掉,故意不拿绝对不是最优策略。所以整个策略就包括两种:向左走还是向右走。设状态为dp[l][r][2]。0代表阿里巴巴在左端点,1代表阿

闲停 1520

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

UVA - 1632 Alibaba(区间DP)

题目链接 吐槽一波:这题目没有数据范围有点NT 和前面的修缮长城差不多了,就是裸的区间DP(实际上更简单一些),然后本题需要注意的只有两个地方,一个是在宝物恰好消失的那一秒是到达是取不到宝物的;另外一个地方是区间DP的一种写法是会T的——也就是在讲最优矩阵链乘接触的写法,而写逆推的话是OK的,真是一道奇怪的题目 #include <set> #include <map> #include <stack> #include <queue> #include &

Happig的博客 200

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

UVA-1632 Alibaba (区间DP)

Alibaba the famous character of our childhood stories would like to be immortal in order to keepbringing happiness to children. In order to rich this status he needs to prove that he is still able t

lljjccsskk的专栏 414

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Uva 1632 alibaba 区间dp

题意见紫书P306。 这道题跟例题的修长城比较像, 也是用三维dp记录一个区间i, j , Alibaba在左端点或者右端点的时候的最短时间, 那么转移方程就是: dp[i][j][0] = min(dp[i + 1][j][0] + a[i + 1] - a[i], dp[i + 1][j][1] + a[j] - a[i]); dp[i][j][1] = min(dp[i][j - 1]

zz_Black的博客 489

UVA - 1632 Alibaba 区间DP

题目:传送门 真是醉了 = =,虽然知道是区间DP,但是这题想了一天都没想出来怎么做,偷偷看了一眼题解的状态定义,又研究了一天,改了好几个小时才做出来。。太弱了。。。 状态定义:d[i][j][k]表示区间长度为i,当前位置为j,k=0时表示j是该区间的左端点,k=1时表示j是该区间的右端点,状态转移过程 k==0时,d[i][j][k]可转移到d[i+1][j-1][0]和d[i+1][i+

cout<<"Hello World!"; 732

UVA 1632 Alibaba(区间dp)

题意: 告诉你n 个点位置和消失的时间,你可以从任意一个点出发,求出到达所有点的最小时间? 思路: 区间dp 令dp[i][j][0]  你在i~j 这个区间的i 位置。 dp[i][j][1] 表示你在i~j 这个区间的j 位置。 转移的话 一个长度为k 的区间只能有长度为k-1的区间转移得到: 吐槽: 第一遍超时  写的记忆话搜索,  改成递推式后 可以免掉初始化这一步。这样就

aozil_yang的博客 389

UVA - 1632 Alibaba 区间dp

题意:给定n个点,其中第i个点的坐标是xix_i,且它会在did_i秒后消失。Alibaba可以从任意位置出发,求访问完所有点的最短时间。无解输出No solution。思路:dp(i,j,0)dp(i, j, 0)表示访问完区间[i,j][i,j]后停留在i点的最短时间,dp(i,j,1)dp(i, j, 1)表示访问完区间[i,j][i,j]后停留在j点的最短时间。转移方程如下:dp[i][j]

flyawayl的博客 719

UVA 1632 Alibaba (区间dp)

Alibaba the famous character of our childhood stories would like to be immortal in order to keep bringing happiness to children. In order to rich this status he needs to prove that he is still able to...

Tc的专栏 402

UVA-1632 Alibaba (区间DP+滚动数组)

题目大意:在一条直线上有n件珠宝,已知每件珠宝的位置,并且第 i 件珠宝在 ti 时刻就消失,问能否将所有的珠宝收集起来?如果能,求出最短时间。搜集能瞬间完成。 题目分析:区间DP。dp(i,j,0)表示搜集区间(i,j)并且停留在左端所需的最短时间,dp(i,j,1)表示搜集区间(i,j)并且停留在右端所需的最短时间。状态转移方程为 dp(i,j,0)=min(dp(i+1,j,0...

weixin_30332241的博客 128

UVa 1632 Alibaba

该问题要求在一维直线上收集所有宝藏,每个宝藏有位置和截止时间约束。采用动态规划方法,定义状态dp[i][j][0/1]表示收集区间[i,j]的宝藏且位于左/右端点的最小时间。算法步骤包括按位置排序、初始化单点区间、区间扩展DP转移并检查时间约束。最终时间复杂度O(n²),空间复杂度O(n)。若无法满足所有截止时间则输出无解,否则输出最小完成时间。

寂静山林 868

uva1632Alibaba

题目描述: Alibaba the famous character of our childhood stories would like to be immortal in order to keep bringing happiness to children. In order to rich this status he needs to prove that he is still

fouzhe的博客 1083

uva1632(区间dp)

/* translation: 直线上有n个点,每个点会在经过各自特定的时间后消失。问从任意位置出发走过所有的点的最短时间是多少? solution: 区间dp dp[i][j][0]表示i~j区间里的点都走完了,且最后停留在i点。 dp[i][j][1]表示i~j区间里的点都走完了,且最后停留在j点。 具体状态转移方程见代码。 note: # 一开始的思路是按照TSP解决,后来发现

林伏案的博客 487

UVa #1632 Alibaba (习题9-8)

区间dp,和UVa #1336 Fixing the Great Wall (例题9-21)类似。但数据规模太大,记忆化搜索会TLE,必须递推。 我一开始把状态设计为dp(i,j,k)表示当前已访问区间为[i,j],且站在 i (k == 0)或 j (k==1),最少还需多少时间收集全部宝藏。同时还需要一个辅助数组来记录当前已经经历的时间,来判断是否过了deadline。这个设计很臃肿

专攻挖掘机炒鸡蛋算法的专栏 1202
上一篇: UVa 242 Stamps and Envelope Size (完全背包)
下一篇: codevs 1191 数轴染色 (并查集)
Interstellar_
博客等级 码龄10年 8粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值