【DP】景观美化

景观美化

题目大意:

有n个花圃,里面有一定的泥土,可以将泥土运到别的花圃,也可以填入,也可以挖出,现在要改变花圃中的泥土数量,问最少花多少钱

原题:

题目描述:

农夫约翰最近决定来美化他的花园,他需要运输很多的泥土。花园是由N块花圃组成的。第i块花圃初始的时候有Ai数量的泥土。为了达到美化的目的,必须使得第i块花圃的泥土数量Ai变成Bi。
约翰有三个选择:第一,他可以买一个单位的泥土放进任意花圃中,代价是X;第二,他可以将一个单位的泥土从某一个花圃中除去,代价是Y;第三,他可以将第i块花圃中的一个单位的泥土搬运到第j块花圃中,大家是Z*|i-j|。

问题描述

请帮助约翰计算为了达到目的最小需要花费的代价。

输入

第一行四个整数,分别是N,X,Y,Z。
接下来N行,每行两个整数,分别表示Ai和Bi。

输出

只有一行一个整数,表示最小的代价。

输入样例

4 100 200 1 
1 4 
2 3 
3 2 
4 0 

输出样例

210

说明

数据范围:1<=N<=100,0<=Ai,Bi<=10,0<=X,Y,Z<=1000。
说明:从第4个花圃中所有的土必须被除去,其中1个单位的土被直接除去,代价是200,剩下3个单位的土从第4个花圃到第1个花圃,

解题思路:

首先把每一块泥土用他所在的坑表示出来,就变成了1223334444和111122233,然后题目就变成了“编辑字符距离”
设f[i][j]为原来的前i个单位泥土变成目标的前j个泥土的最小代价
所以三个操作分别是:
填入:因为当前要填入,所以填入之前要和j-1相同所以f[i][j]=f[i][j-1]+x;
挖出:因为是挖出,所以挖去一个后要和j相同所以f[i][j]=f[i-1][j]+y;
移动:就是把当前的移到目标的就行了,就是f[i][j]=f[i-1][j-1]+z×abs(a[i]-b[j])
然后求最小了

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#define abs(aa) ((aa)<0?-(aa):(aa))//绝对值
using namespace std;
int n,x,y,z,xx,yy,an,bn,a[1005],b[1005],f[1005][1005];
int main()
{scanf("%d %d %d %d",&n,&x,&y,&z);for (int i=1;i<=n;++i){scanf("%d %d",&xx,&yy);for (int j=1;j<=xx;++j)a[++an]=i;//改变表达方式for (int j=1;j<=yy;++j)b[++bn]=i;} memset(f,0x7f,sizeof(f));for (int i=0;i<=an;++i)f[i][0]=y*i;//预处理for (int i=0;i<=bn;++i)f[0][bn]=x*i;for (int i=1;i<=an;++i)for (int j=1;j<=bn;++j)f[i][j]=min(f[i-1][j-1]+z*abs(a[i]-b[j]),min(f[i][j-1]+x,f[i-1][j]+y));//DPprintf("%d",f[an][bn]);
}

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

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

相关文章

CentOS安装使用.netcore极简教程(免费提供学习服务器)

本文目标是指引从未使用过Linux的.Neter&#xff0c;如何在CentOS7上安装.Net Core环境&#xff0c;以及部署.Net Core应用。 仅针对CentOS&#xff0c;其它Linux系统类似&#xff0c;命令环节稍加调整&#xff1b;需要提前准备好服务器地址、用户名、密码&#xff1b;如果手上…

ASP.NET Core MVC+EF Core从开发到部署

笔记本电脑装了双系统&#xff08;Windows 10和Ubuntu16.04&#xff09;快半年了&#xff0c;平时有时间就喜欢切换到Ubuntu系统下耍耍Linux&#xff0c;熟悉熟悉Linux命令、Shell脚本以及Linux下的各种应用的安装、配置、运行。使用下来的感受是Linux确实相当好使&#xff0c;…

初一模拟赛(4.27)

成绩&#xff1a; rankrankranknamenamenamescorescorescoreT1T1T1T2T2T2T3T3T3T4T4T4111lyflyflyf320320320100100100100100100100100100202020222hkyhkyhky296296296100100100100100100868686101010333wjjwjjwjj276276276100100100909090868686000444fyfyfy24824824810010010…

P4145-上帝造题的七分钟2/花神游历各国【并查集,树状数组】

正题 题目链接:https://www.luogu.com.cn/problem/P4145 题目大意 一个序列要求支持 区间开根向下取整区间求和 解题思路 一个数开根约logloglog次就会到111&#xff0c;所以我们对于每个数记录一下开根多少次会到111&#xff0c;每次修改用并查集找还没到111的暴力修改树状…

网络流及建模专题(上)

前言 不断更新中…… 这几天新坑填不下去了&#xff0c;回来回顾一些经典的模型套路&#xff0c;先拿网络流开刀&#xff0c;窃以为洛谷这几道网络流的题目还是非常具有代表性的&#xff0c;涵盖了网络流调整、多解计数、最小割、最大权闭合子图问题。 还涵盖了图论&#xff0…

基于 websocket 实现的 im 实时通讯案例

分享利用 redis 订阅与发布特性&#xff0c;巧妙的现实高性能im系统。为表诚意&#xff0c;先贴源码地址&#xff1a;https://github.com/2881099/im下载源码后的运行方法&#xff1a;运行环境&#xff1a;.NETCore 2.1 redis-server 2.8下载Redis-x64-2.8.2402.zip&#xff0…

【并查集】【图论】旅行(ssl 1312)

旅行 ssl 1312 题目大意&#xff1a; 有一个图&#xff0c;要从一个点到另一个点&#xff0c;问路上的最大值和最小值的比最小是多少 原题&#xff1a; 题目描述 Z小镇是一个景色宜人的地方&#xff0c;吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点&#xff…

P4302-[SCOI2003]字符串折叠【区间dp】

正题 题目链接:https://www.luogu.com.cn/problem/P4302 题目大意 一个字符串&#xff0c;对于一个字符串AAA。可以将连续的nnn个AAA缩成n(A)n(A)n(A)。求最短的长度能够表述出给定字符串 解题思路 定义fi,jf_{i,j}fi,j​表示表示出i∼ji\sim ji∼j的字符串的最短方法。那么…

ACM/ICPC 比赛生涯总结+经验分享

ACM/ICPC 比赛生涯总结经验分享 1.获奖经历 时间比赛奖励大一下ACM陕西省赛打铁大一下CCCC团队二等奖大二下ACM/ICPC全国邀请赛银奖大二下CCCC团队特等奖大三上ACM/ICPC区域赛沈阳站铜奖大三上ACM/ICPC区域赛南宁站银奖大三上ACM/ICPC EC-Final上海铜奖大三下CCCC团队特等奖大…

YbtOJ#20064-[NOIP2020模拟赛B组Day4]预算缩减【树形dp】

正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/2 题目大意 nnn个点的一棵树&#xff0c;求删掉一些边让剩下的连通块大小不小于kkk&#xff0c;求方案数。 解题思路 定义fi,jf_{i,j}fi,j​表示iii的子树现在联通块大小为jjj时的方案数&#xff0c;我们不难发现…

【并查集】团伙(luogu 1892)

团伙 luogu 1892 代码&#xff1a; 定义对手的对手是朋友&#xff0c;朋友的朋友是朋友&#xff0c;现在有n个人和m组关系&#xff0c;如果两个人是朋友那么他们属于同一个团伙&#xff0c;问有多少个团伙 原题&#xff1a; 题目描述 1920年的芝加哥&#xff0c;出现了一…

NCC Meetup 2018 Shanghai 活动小结

NCC Meetup 2018 上海的活动于2018年6月30日在微软上海港汇办公室进行。原本计划30人规模的小型活动&#xff0c;结果收到了逾60人的报名&#xff0c;其中大部均来到现场参加了活动。本次活动得到了微软公司的场地支持&#xff0c;同时非常感谢 范亮先生、 刘浩杨先生和 邹嵩…

【结论】Array

Array 题目大意&#xff1a; 有一个数列&#xff0c;随机交换两个数&#xff0c;原数列和当前数列相同部分有可能有多少个 原题&#xff1a; 题目描述 Alice 有一个数列 ai。 但是她不喜欢这个数列&#xff0c;于是她决定随机交换其中两个数。 Alice 想知道&#xff0c;交…

YbtOJ#20065-[NOIP2020模拟赛B组Day4]模拟比赛【dp】

正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/3 解题思路 有nnn道题&#xff0c;mmm个人。一些题目是让某些人一定得分&#xff0c;一些题目是让某些人可以能得分。 求排名前sss的人选出ttt个人&#xff0c;可能的集合个数。 解题思路 显然我们如果要判断一…

Asp.Net Core 使用Quartz基于界面画接口管理做定时任务

今天抽出一点点时间来造一个小轮子&#xff0c;是关于定时任务这块的。这篇文章主要从一下几点介绍&#xff1a;创建数据库管理表创建web项目引入quarzt nuget 包写具体配置操作&#xff0c;实现定时任务处理第一步&#xff1a;创建一个空web项目&#xff0c;引入quarzt nuget …

YbtOJ#20066-[NOIP2020模拟赛B组Day4]筹备计划【线段树,树状数组】

正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/4 题目大意 一个集合[1,n]∈S[1,n]\in S[1,n]∈S&#xff0c;和一个序列aaa。有操作 序列aaa的一个数加上xxx序列aaa的一个数减去xxx将[l,r][l,r][l,r]加入集合SSS将[l,r][l,r][l,r]删除出集合SSS 每次修改后求…

【模拟】Biotech

Biotech 题目大意&#xff1a; 有一堆细胞&#xff08;放电或不放电&#xff09;&#xff0c;当周围细胞放电个数小于2或大于3时&#xff08;八个方向&#xff09;&#xff0c;此细胞变为不放电&#xff0c;当周围细胞放电个数为2时&#xff0c;此细胞不变&#xff0c;当周围…

.NET Core微服务之服务间的调用方式(REST and RPC)

一、REST or RPC ?1.1 REST & RPC微服务之间的接口调用通常包含两个部分&#xff0c;序列化和通信协议。常见的序列化协议包括json、xml、hession、protobuf、thrift、text、bytes等&#xff1b;通信比较流行的是http、soap、websockect&#xff0c;RPC通常基于TCP实现&am…

【记忆化搜索】【dfs】【递归】Chocolate

Chocolate 题目大意&#xff1a; 有一块巧克力&#xff08;每一个单位有一定的美味值&#xff09;&#xff0c;判断是否可以把他分为k块美味值相等的小巧克力 原题&#xff1a; 题目描述 Charlie 有一块巧克力。 这块巧克力是矩形的&#xff0c;有 n 行 m 列一共 n m 个大…

YbtOJ#20063-[NOIP2020模拟赛B组Day4]古老谜题【统计】

正题 题目链接:http://noip.ybtoj.com.cn/contest/90/problem/1 题目大意 给出一个010101序列&#xff0c;求有多少对(l,p,r)(l,p,r)(l,p,r)使得l<p<rl<p<rl<p<r且sp1s_p1sp​1且s(l,p)s(p,r)s(l,p)s(p,r)s(l,p)s(p,r)&#xff08;s(l,r)s(l,r)s(l,r)表示l…