uva 1336 - Fixing the Great Wall

详解Σ-Δ型ADC拓扑结构的基本原理 现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。 阅读详情
//
//  main.cpp
//  uva 1336 - Fixing the Great Wall

/*
 我们先按位置大小排序。
 首先我们注意到:
 对于 i ....x.....j,x表示现在的机器人的位置。
 如果x现在在修复了i,那么位于x和i之间的所有位置都是已经修复好的了,因为我们当前已经到了i,那么我们就可以顺便修复了x和i之间的位置,这绝对不会增加最终的总费用。所以得出了一个结论。
 最优的修复顺序满足,1---x之间的位置在最优解中的相对位置是相反的。而x---n之间的位置的相对位置是不变的。
 
 有了这个结论我们可以想到解法了.
 对于当前的位置我们有两个选择 1.修复当前位置右边的位置。
                         2.修复当前位置左边的位置。
 
 设d[i][j][t]表示当前所在的位置为t,(t等于i或者j),且只考虑前i个,和第j个以及后面的位置,修理后面被破坏的区域需要的最少的钱。
 这里t只为1或者0.0表示在左边,1表示字右边的节点上。
 则有
 d[i][j][0] = min(d[i][j][0] , d[i-1][j][0]+t[i-1][i] * c_all[i-1][j],d[i-1][j+1][1] + t[j][j+1]* c_all[i-1][j+1]);t[i][j]表示从i到j的时间。
 同理可得出在t==1时的情况。
 */

#include <iostream>
#include <queue>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<vector>
#include <string.h>
#include <algorithm>
#include <set>
#include <map>
#include <cstdio>
#define ll long long
using namespace std ;
double d[1010][1010][2];
double v ;
double INF = 1000000000 ;
int c_all[1010][1010] ;
struct sec{
    int pos , c,d  ;
    bool operator < (const sec &temp ) const{
        return  pos < temp.pos ;
    } ;
};
sec wall[1010] ;
int n ;
double min(double  a,double b)
{
    return  a >b ? b :a ;
}
double dp(int l , int r , int t)
{
    if (d[l][r][t] >= 0  ) {
        return d[l][r][t] ;
    }
    else{
        double time  ;
        double& ans = d[l][r][t] ;
        ans = INF ;
        if (t == 0 ) {
            if (l <= 1&& r == n + 1) {
                return ans = 0 ;
            }
            if(l >1) {
                time =((double )(wall[l].pos - wall[l-1].pos))/v  ;
                ans = min(ans , dp(l-1,r , 0) + time * c_all[l-1][r]) ;
            }
            if(r <=n  ) {
                time = ((double) (wall[r].pos -  wall[l].pos))/v ;  ;
                ans = min(ans  , dp(l-1, r, 1) + time * c_all[l-1][r]) ;
            }
        }
        else{
            if (l == 0 && r == n ) {
                return ans = 0 ;
            }
            if(l >=1){
                time =((double )(wall[r].pos - wall[l].pos))/v  ;
                ans = min(ans , dp(l,r+1 , 0) + time * c_all[l][r+1]) ;
            }
            if(r <n  ){
                time = ((double) (wall[r+1].pos -  wall[r].pos))/v ;  ;
                ans = min(ans  , dp(l, r+1, 1) + time * c_all[l][r+1]) ;
            }
        }
        return ans ;
    }
}
int sum[1010] ;
int main() {
    int x,_v;
    double ans ;
    int cost ;
    while (scanf("%d%d%d" ,&n,&_v,&x)==3 &&  n + _v + x != 0 ) {
        cost = 0 ;
        for (int i = 0; i <  n ; i++) {
            scanf("%d%d%d" ,&wall[i+1].pos,&wall[i+1].c,&wall[i+1].d) ;
            cost += wall[i+1].c ;
        }
        sort(wall+1, wall+n+1) ;
        for (int i = 0; i <=n+5; i++) {
            for (int j = 0 ; j <= n +5; j++) {
                d[i][j][0] = d[i][j][1] = -1 ;
            }
        }
        sum[0] = 0 ;
        for (int i = 1; i <= n ; i++) {
            sum[i] = sum[i-1] + wall[i].d ;
        }
        for (int i  = 0; i <= n ; i++) {
            for (int j = i+1 ; j <=n; j++) {
                c_all[i][j] = sum[i] + sum[n] - sum[j-1] ;
            }
            c_all[i][n+1] = sum[i] ;
        }
        int s = 1 ;
        while (s <= n && wall[s].pos < x) {
            s++ ;
        }
        v = _v ;
        if (s == 1) {
            ans = dp(1, 2, 0) +(double(wall[1].pos - x) )/v*sum[n] ;
        }
        else if (s  ==n +1 )
        {
            ans = dp(n, n+1,0) +  (double(x- wall[n].pos) )/v*sum[n];
        }
        else{
            ans = min(dp(s-1, s , 0 ) +(double(x- wall[s-1].pos) )/v*sum[n] ,
                      dp(s-1, s , 1 ) +(double( wall[s].pos-x) )/v*sum[n]);
        }
        printf("%d\n" ,(int)(ans + 1e-8 +cost)) ;
    }
    return 0;
}

uniapp [安卓苹果App端] - errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002)Uniapp真机运行APP网络请求报错失败排查 uniapp真机运行APP,网络请求报错errMsg“: “request:fail abort statusCode:-1 不支持的URL(-1002),uni.request网路请求报错,uniApp解决请求接口报错,uniapp app端打包上线后请求报错,真机运行测试请求失败,uniapp安卓app请求报错,uniapp苹果ios平台网络请求报错,uniapp真机预览请求失败怎么办,不是跨域问题,在H5中请求可以正常发送和接收,但在真机APP上请求报错,Hbuilder真机运行app网络请求报错,全 阅读详情

相关推荐

基于DSP28335的Matlab/Simulink代码生成实验七:A/D采样

实验七:讲解如何使用DSP的ADC模块,通过代码生成技术控制DSP进行电流采样,是后续实现电机闭环控制的重要环节。通过简单的实验来熟悉代码生成的过程。最终实现复杂算法代码自动生成,进行高性能电机控制!

m0_73869369的博客 4724

UVA1336 - Fixing the Great Wall (区间DP)

题意:用机器人修复分布在一条直线段上的n个损坏点,对于每个点i,x[i]表示位置,c[i]为立刻修缮的费用,d[i]为单位时间增加的维修费用。例如若在时刻t修缮i号点,则费用为ci+t∗di。给出机器人的初始位置x,速度v。求出修缮所有点的最小费用。 分析:在任意时刻,机器人修完的点肯定是一个连续的区间,这个区间的费用不会再增加,它接下来每移动一步,增加的费用都等于区间外的d之和乘以时间。f[i...

常胜将军的博客 302

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

解放双手,摆脱自建库的繁琐,立创EDA元件库转cadence原理图封装库实战技巧

u012790770的博客 3616

Uva-1336-Fixing the Great Wall

这个题大意是给你一些需要修复位置的坐标,以及修复他们的费用和等待单位

z309241990的专栏 1380

NB-IoT开发避坑指南:STM32下AT指令状态机的设计与优化

本文深入探讨了在STM32平台上为NB-IoT模组开发时,如何用状态机(FSM)设计替代传统的阻塞式AT指令处理方法。通过构建非阻塞、事件驱动的AT指令引擎,有效解决了系统卡顿、响应迟缓等问题,并详细介绍了状态机的设计、实现与高级优化技巧,助力开发者打造健壮可靠的物联网设备通信核心。

q5r6s7的博客 758

Unity3D用c#脚本调用前端javascript函数:H5获取unity - webgl 加载并初始化完成的消息

unity3d发布的Webgl 可以作为静态文件加载到H5页面中,并通过javascript 调用unity内置的C#脚本函数,详见Webgl调用unity api。而往往我们需要知道Webgl ready的消息,本文将给出unity 内部调用javascript函数的方案加以解决。

Bravo 2476

UVA1336 - Fixing the Great Wall

区间DP

ACoder 403

python 中心线提取_二值分析 | OpenCV + skimage如何提取中心线

点击上方蓝字关注我们微信公众号:OpenCV学堂关注获取更多计算机视觉与深度学习知识问题前几天有个人问了我一个问题,问题是这样的,他有如下的一张二值图像:怎么得到白色Blob中心线,他希望的效果如下:显然OpenCV中常见的轮廓分析无法获得上面的中心红色线段,本质上这个问题是如何提取二值对象的骨架,提取骨架的方法在OpenCV的扩展模块中,另外skimage包也支持图像的骨架提取。这里就...

weixin_42204453的博客 4290

一个不错的笑話哦⋯⋯很有意思的双关语

amlaosong评:这是IT行业两个大佬的对话,一个在人间,一个在天堂,对话以盖茨问乔布斯天堂情况开始: An intelligent joke. Bill Gates: "So, how's heaven, Steve?" Steve Jobs: "Great ! It just doesn't have any wall or fence." Bill Gates: "So...?"

驽马十驾 才定不舍 4966

Embarcadero Dev-C++ 6.3安装教程【保姆级】

Embarcadero Dev-C++ 6.3安装教程,保姆级教程~

Thebest_jack的博客 1万+

32、高光谱遥感技术在军事领域的应用解析

高光谱遥感技术凭借其高分辨率和精细光谱分析能力,在军事领域广泛应用于战场详细侦察、伪装目标识别及目标实际温度与发射率的检测,显著提升了目标识别精度和作战支持能力。同时,该技术在内陆水体成分反演、海洋环境监测和农业管理等领域也展现出巨大潜力。尽管面临数据量大、处理复杂、技术融合不足和仪器性能限制等挑战,未来通过人工智能融合、高效算法研发和先进仪器开发,高光谱遥感技术将在多领域实现更深入应用与发展。

blue的专栏 229

uva 1336 - Fixing the Great Wall 修缮长城

比较难想的动态规划 uva 1336 - Fixing the Great Wall 修缮长城

便纵有千种风情 933

【入坑存内计算一键指南】存内计算运算原理:算法优化、存储介质探究

本文探讨了存内计算及其面向的架构优化,尤其侧重于图算法优化和存内计算存储介质。文章介绍了存内计算的概念和意义,着重强调了存内计算解决了内存墙问题,提高了计算效率。针对图算法的优化,提出了基于位运算的创新方法,重塑了单源最短路径算法,并介绍了基于局部重叠度的链路预测算法优化设计。接着,文章详细讨论了存内计算存储介质,特别是非易失性存储器,比较了不同类型存储器的性能,并重点介绍了基于ReRAM的存内计算技术,包括其物理模型和交叉阵列结构。

一键难忘的博客 7066

UVa 1336 Fixing the Great Wall

本文介绍了一个区间动态规划算法,用于解决长城修复机器人路径规划问题。该问题要求确定损坏区段的最优修复顺序,以最小化随时间增长的总修复成本。算法通过将机器人初始位置作为虚拟起点,使用两个动态规划数组分别记录停在区间两端的状态,并计算移动时间和累积成本。关键步骤包括区段排序、前缀和计算、区间动态规划状态转移,最终输出最小成本。该算法的时间复杂度为O(n²),适用于中等规模的问题实例。

寂静山林 690

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

uva1336 Fixing the Great Wall

https://vjudge.net/problem/UVA-1336 显然最佳的移动方式一定是向左走一段,向右走一段,再向左走一段,再向右走一段......(或者反过来) 无论如何中间的会最先被修理好,所以考虑区间dp $f_{i,j,0/1}$表示修理好了$i\rightarrow j$时,所用的最小费用(注意费用提前计算) 预处理处$cl_{i,j}(i\leq j)$表示从$...

weixin_30412013的博客 119

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

UVa1336 Fixing the Great Wall

UVa1336 - vjudge 题目大意 用机器人修复分布在一条直线段上的n个坏点,对于每个点i,x[i]表示位置,c[i]为立刻修缮的费用,d[i]为单位时间增加的维修费用。例如若在时刻t修缮i号点,则费用为ci+t∗dic_i + t * d_i。给出机器人的初始位置x,速度v。求出修缮所有点的最小费用。 题解 f[i][j][k]为修复完i~j,当前位置在k(k为0则在x[i],为1则在

Circus 596

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

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

【UVa】【DP】1336 Fixing the Great Wall

UVa 1336 Fixing the Great Wall 题目 ◇题目传送门◆(由于UVa较慢,这里提供一份vjudge的链接) ◇题目传送门(vjudge)◆ 题目大意 长城被看做了一条直线段。其中有NNN个点需要使用机器人维修。可以使用一个三元组(xi,ci,di)(xi,ci,di)(x_i,c_i,d_i)描述第iii个损坏点的参数,其中,xixix_i...

IDDFS 268

UVA - 1336 Fixing the Great Wall

问题 机器人修补长城,给三个整数,n代表缺口(缺口看作点),v(机器人行动速度),x(机器人现在所在位置),x不和任何缺损点重合,对于n个点,每个点有3个整数,x代表缺损点位置,c代表修补代价,delta代表随时间增加的代价,总代价是c+delta*t 输入 三个整数,n,v,x,后面n组点的参数,x,c,delta,最小花费不大于1e91e^91e9 输出 修补花费,截断输出整数 思路 修复的点...

zpf1998的博客 238

Fixing the Great Wall UVA - 1336

简单的题目,按照紫书上面的思路即可,但是在实现的过程当中又感觉到了一丝丝贪心算法的味道,嗯,有一定的违和感...... #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespa

zju2016的博客 347

UVA 1336 Fixing the Great Wall(区间DP)

题意:修长城n个损坏点

glq007的acm的奋斗 1586

【Uva 1336】Fixing the Great Wall

【Link】: 【Description】 给你长城上的n个修补点,然后你的位置为x; 你需要依次去这n个点,然后把它们全部修好. 但是修的前后顺序不一样的话,花费不一样. 如果立即把第i个点修好的话,需要c[i]点花费; 每多t秒钟,就要多花费t*d[i]点花费. 你一开始的位置在x,然后你的移动速度为v; 求修完所有的点的最小花费. 【So...

91

Linux进程间通信:消息队列与信号灯的原理、API实战与高级应用

进程间通信(IPC)是操作系统实现多进程协同工作的核心技术,它解决了进程间数据交换与同步控制的基础问题。其核心原理在于通过内核提供的机制,在隔离的进程地址空间之间建立可控的数据通道或同步点。从技术价值看,IPC是构建高性能、可扩展后台服务与分布式系统的基石,直接影响系统的稳定性与吞吐量。在应用场景上,它广泛服务于生产者-消费者模型、资源池管理、任务分发等并发模式。本文将聚焦于System V IPC家族中的两个经典实现:消息队列与信号灯(信号量)。消息队列提供了异步、结构化的消息传递能力,有效解决了进程间数

weixin_30719711的博客 364

UVA1336 Fixing the Great Wall 区间DP

参考博客:https://www.luogu.org/problemnew/solution/UVA1336 思路: 我们先贪心的思考,选取的每些数必定是一段连续的区间,于是问题就转化成了区间DP。 按照坐标排一下序,(有一点离散化的思想吧,毕竟坐标太大)。每一个位置有两种决策方案,向左走or向右走(这里的走是指走到点,不是一个一个坐标的移动)。 我们不妨设f[i][j][k]表示在i到j...

兜率工的博客 270

UVA - 1336 Fixing the Great Wall(经典区间DP)

传送门 这样的题目见过几次了,给出起点,遍历若干坐标,每次既可以向左走又可以向右走,每个点对应权值函数,然后找一个最优的走法 1.首先需要想到的一点是,因为修理某点不耗费时间,所以假如下一个点是对应需要修理的最优点,那么从当前点到下一个最优点的路途中,可以顺便修理中间的点,那么这样就是最优花费。那么我们在修理过程中,已修理的区间一定是连续的,那么考虑区间dp 2.因为不知道当前时间,因此费用不能在到达某点时再计算,而是事先将肯定会发生的费用累加到答案中,然后“时钟归零”。对于所有区间显然需要按坐标排序,这

Happig的博客 272

UVA1336 Fixing the great wall

题目大意:将长城看成一直线段,有n个需要修缮的点。对于第i个点用三个参数x,c,d表述。x表示位置,c表示立即修缮的费用,d表示单位时间增加的修缮费用。修缮时间忽略不计。机器人初始位置在x处,移动速度恒定为v,找到修缮所有点的最小费用 将所有点按照位置排序。由于修复的点一定是一段连续的区间,因此我们可以考虑用区间dp解决 f[i][j][k]表示修复i~j区间所有点最终停在k点时(k=0表示在...

SuperGate的博客 273
上一篇: uva 10118 - Free Candies-动态规划
下一篇: hdu 2577 How to Type--记忆化搜索
LuckyqXd
博客等级 码龄12年 2粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值