P1220-关路灯【区间dp】

正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1220


题目大意

有n盏灯,每个灯的所在位置和1s消耗的能量不同,现在一个人在c号灯下,他行走速度1m/s,他走到的地方灯会熄灭,求最少消耗能量。


解题思路

fi,j,0/1f_{i,j,0/1}fi,j,0/1表示已经熄灭i∼ji\sim jij这个范围的灯,人在i处或j处。
然后我们考虑如果人在i处那么可以从i+1处过来
fi+1,j,0+(li+1−li)∗(sn−sj+si)f_{i+1,j,0}+(l_{i+1}-l_i)*(s_n-s_j+s_i)fi+1,j,0+(li+1li)(snsj+si)
或者从j折返
fi+1,j,1+(lj−li)∗(sn−sj+si)f_{i+1,j,1}+(l_j-l_i)*(s_n-s_j+s_i)fi+1,j,1+(ljli)(snsj+si)
右边的话以此类推

动态转移:

        f[i][j][0]=min(f[i+1][j][0]+(l[i+1]-l[i])*(s[n]-s[j]+s[i]),f[i][j][0]);f[i][j][0]=min(f[i+1][j][1]+(l[j]-l[i])*(s[n]-s[j]+s[i]),f[i][j][0]);f[i][j][1]=min(f[i][j-1][1]+(l[j]-l[j-1])*(s[n]-s[j-1]+s[i-1]),f[i][j][1]);f[i][j][1]=min(f[i][j-1][0]+(l[j]-l[i])*(s[n]-s[j-1]+s[i-1]),f[i][j][1]);

code

#include<cstdio>
#include<algorithm>
#include<cstring>
#define N 60
using namespace std;
int n,c,l[N],f[N][N][2],J,s[N];
int main()
{memset(f,127,sizeof(f));//初始化scanf("%d%d",&n,&c);for(int i=1;i<=n;i++)scanf("%d%d",&l[i],&J),s[i]=s[i-1]+J;//前缀和f[c][c][0]=f[c][c][1]=0;for(int len=2;len<=n;len++)//枚举区间长度for(int i=1;i+len-1<=n;i++)//枚举左端点{int j=i+len-1;//计算又端点f[i][j][0]=min(f[i+1][j][0]+(l[i+1]-l[i])*(s[n]-s[j]+s[i]),f[i][j][0]);f[i][j][0]=min(f[i+1][j][1]+(l[j]-l[i])*(s[n]-s[j]+s[i]),f[i][j][0]);f[i][j][1]=min(f[i][j-1][1]+(l[j]-l[j-1])*(s[n]-s[j-1]+s[i-1]),f[i][j][1]);f[i][j][1]=min(f[i][j-1][0]+(l[j]-l[i])*(s[n]-s[j-1]+s[i-1]),f[i][j][1]);//动态转移}printf("%d",min(f[1][n][0],f[1][n][1]));
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8中Stream API的这些奇技淫巧!你都Get到了吗?

转载自 Java 8中Stream API的这些奇技淫巧&#xff01;你都Get到了吗&#xff1f; Stream简介 Java 8引入了全新的Stream API。这里的Stream和I/O流不同&#xff0c;它更像具有Iterable的集合类&#xff0c;但行为和集合类又有所不同。stream是对集合对象功能的增强&#x…

基于Office 365的随需应变业务应用平台

这是我去年10月底在微软技术大会&#xff08;Microsoft Ignite 2016) 上面的演讲主题&#xff0c;承蒙大家抬爱&#xff0c;也沾了前一场明星讲师的光&#xff0c;我记得会场几乎是满座。观众中既有IT部门的技术人员&#xff0c;也有业务部门的用户&#xff0c;也有少量的开发人…

关于return的用法

return其实就是个返回值&#xff0c;你要是想获得它只需开辟一个空间&#xff0c;赋值即可 让a该函数&#xff1b;即可获得返回值 下面是利用返回值和函数直接打印出两数相乘 #include<stdio.h>add(int p,int q){return p*q;}int main(){int aadd(10,55);printf("%…

jeecg中新建接口后报错404的解决方法

大家好&#xff0c;我是雄雄。 前言 最近项目中&#xff0c;一直用的是jeecg-boot的微服务版本&#xff0c;尤其是第一次用微服务&#xff0c;所以在用的过程中&#xff0c;各种问题层出不穷&#xff0c;我们就在边学习边应用的道路上缓缓前进。 索性现在项目已经做的差不多了…

P2672-推销员【贪心】

正题 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP2672 题目大意 每家住户有一个位置lil_ili​&#xff0c;推销会产生的疲劳值aia_iai​&#xff0c;向X家住户推销产品&#xff0c;对于每个X&#xff0c;要求使 ∑i1Xaxi2∗max{lxi}\sum_{i1}^{X}a_{…

一分钟理解Java公平锁与非公平锁

转载自 一分钟理解Java公平锁与非公平锁 和朋友聊天他提到&#xff1a;ReentrantLock 的构造函数可以传递一个 bool 数据&#xff0c;true 时构造的是“公平锁”、false 时构造的是“非公平锁”。我的印象中锁是不区分类型的&#xff0c;所以认为这应该是 Java 发明的概念&…

为什么你需要将代码迁移到ASP.NET Core 2.0?

随着 .NET Core 2.0 的发布&#xff0c;.NET 开源跨平台迎来了新的时代。开发者们可以选择使用命令行、个人喜好的文本编辑器、Visual Studio 2017 15.3 和 Visual Studio Code 来开发自己的 .NET Core 2.0 项目。同时&#xff0c;微软 .NET 开发工具组也宣布了 ASP.NET Core 2…

typedef用法

#include<stdio.h> typedef struct Student {int age;int score;}St; int main(){St st{200,100};//等价于 struct Student st 直接命名&#xff0c;省略/很多不必要步骤 printf("%d",st.age);}typedef的核心在于指针而不是仅仅简化了结构 #include<stdi…

jeecg-boot中如何放开接口路由

大家好&#xff0c;我是雄雄。 前言 今天是国庆假期的第5天了&#xff0c;7天的时间&#xff0c;感觉过的挺快&#xff0c;前三天都在下雨&#xff0c;后四天降温冻的瑟瑟发抖。 这次假期完事儿了之后就到元旦&#xff0c;春节了&#xff0c;得好好的珍惜。 今天介绍一下&…

nssl1174-阶乘【!基础!数论】

前言 比赛时xjq说这道题很水&#xff0c;是个基础数论。 然后… 就连交都没交 正题 给出n个数&#xff0c;求一个最小的mmm使得 m!∏i1naiq(q∈N)\frac{m!}{\prod_{i1}^na_i}q(q\in N_)∏i1n​ai​m!​q(q∈N​) 解题思路 我们考虑因为要求在一起的乘积&#xff0c;所以个体…

带着小C看动物

大家好&#xff0c;我是雄雄。 整个国庆假期期间&#xff0c;一出门就背着我的小C书包出去。 第一天带着我对象的妈妈去医院检查了下&#xff0c;然后去原来酒店老板那喝羊汤。第二天准备去我对象家的东西&#xff0c;去超市买了一后备箱&#xff0c;晚上就去她家了趟&#xf…

弹性和瞬态故障处理库Polly介绍

前言本节我们来介绍一款强大的库Polly&#xff0c;Polly是一种.NET弹性和瞬态故障处理库&#xff0c;允许我们以非常顺畅和线程安全的方式来执诸如行重试&#xff0c;断路&#xff0c;超时&#xff0c;故障恢复等策略。 Polly针对对.NET 4.0&#xff0c;.NET 4.5和.NET Standar…

运用递归函数求阶乘

#include<stdio.h>f(int n) {if(n1){ }else {return n*f(n-1);} }main() {int a;af(5);printf("%d",a);} 事实上就是应用了梯归的方法。 不打算继续学c的数据结构了&#xff0c;主要精力放在能够变现的html和python上&#xff0c;打算开启新的篇章&#…

一分钟理解Java包装类型

转载自 一分钟理解Java包装类型 Java 一直标榜自己是一个纯粹的面向对象语言&#xff0c;自作聪明的为所有的值类型都提供相应的引用类型&#xff08;不明白这两个概念&#xff0c;看之前的《一分钟理解传值和传引用》&#xff09;比如&#xff1a;int 类型对应的有 Integer&…

nssl1175-小S练跑步【bfs】

正题 题目大意 n∗mn*mn∗m的地图&#xff0c;每个格子有限制。是障碍的话就不可以到&#xff0c;如果不是就会要求在这个格子不可以像上下左右其中一个方位走。求最少拐弯次数。 解题思路 就是bfs&#xff0c;之前写过类似的&#xff0c;详见&#xff1a;https://blog.csdn.n…

SQL Server 2017 正式发布

SQL Server 2017 跨出了重要的一步&#xff0c;它力求通过将 SQL Server 的强大功能引入 Linux、基于 Linux 的 Docker 容器和 Windows&#xff0c;使用户可以在 SQL Server 平台上选择开发语言、数据类型、本地开发或云端开发&#xff0c;以及操作系统开发。微软拥抱开源的脚步…

关于链表的简单创建和遍历

这是网上的的源码&#xff1a; #include <stdio.h> #include <stdlib.h> #include <malloc.h>// 定义链表中的节点 typedef struct node {int member; // 节点中的成员struct node *pNext; // 指向下一个节点的指针 }Node,*…

可能是最全面的 Java G1学习笔记

转载自 可能是最全面的 Java G1学习笔记 引子 最近遇到很多朋友过来咨询G1调优的问题&#xff0c;我自己去年有专门学过一次G1&#xff0c;但是当时只是看了个皮毛&#xff0c;因此自己也有不少问题。总体来讲&#xff0c;对于G1我有几个疑惑&#xff0c;希望能够在这篇文章中…

nssl1176-轨道【数论,Dp】

正题 题目大意 给出n,m,kn,m,kn,m,k v∏i1nai(ai∈N,ai<m)k(gcd(v,k)1)v\frac{\prod_{i1}^na_i(a_i\in N_,a_i<m)}{k}(gcd(v,k)1)vk∏i1n​ai​(ai​∈N​,ai​<m)​(gcd(v,k)1) 求aaa的方案个数mod10007mod\ 10007mod 10007的值 解题思路 fi,jf_{i,j}fi,j​表示前i个…

微服务~Eureka实现的服务注册与发现及服务之间的调用

微服务里一个重要的概念就是服务注册与发现技术&#xff0c;当你有一个新的服务运行后&#xff0c;我们的服务中心可以感知你&#xff0c;然后把加添加到服务列表里&#xff0c;然后当你死掉后&#xff0c;会从服务中心把你移除&#xff0c;而你作为一个服务&#xff0c;对其它…