一道有趣的题目 安慰MM 动态规划

安慰MM

Description

在一个数轴上,有n个MM在哭泣(5555~一直哭).

tcboy也在这个数轴上,并恰好看到了这一幕,由于每个MM哭都会让tcboy损失一定的rp,于是tcboy有必要去安慰她们.(真命苦啊 T.T)

开始时,tcboy站在k号MM的旁边.

现在知道第i个MM哭泣每秒钟会使tcboy降低 w[i]的rp (单位rp/s).

而tcboy的行走速度很慢只有1m/s .

tcboy安慰MM的方式很特别(怎么安慰随便大家YY了..#@%^%#@),不需要花费时间.

请计算tcboy安慰完所有MM,会消耗掉的rp的最小值.

Format

Input

输入文件的第一行包含一个整数N,2<=N<=1000,表示MM的数量。 第二行包含一个整数V,1<=V<=N,表示开始时tcboy站在几号MM的旁边. 接下来的N行中,每行包含两个用空格隔开的整数D和W,用来描述每个MM,其中0<=D<=1000,0<=W<=1000。D表示MM在数轴上的位置(单位: m),W表示每秒钟会使tcboy降低W的rp。

Output

输出只有一行:一个整数,即消耗rp之和的最小值。结果不超过1,000,000,000。

Samples

输入数据 1

input1 复制代码
4
3
2 2
5 8
6 1
8 7

Copy

输出数据 1

output1 复制代码
56

Copy

cpp 复制代码
#include<bits/stdc++.h>
const int Max=1005;
using namespace std;
int f[Max][Max][2]={0},w[Max]={0},d[Max],n,v;
int main()
{
	cin>>n>>v;
	for(int i=1;i<=n;i++){
		cin>>d[i]>>w[i];
		w[i]+=w[i-1];
	}
	f[v][v][0]=f[v][v][1]=0;
	for(int i=v-1;i>=1;i--){
		f[i][v][0]=f[i+1][v][0]+(w[i]+(w[n]-w[v]))*(d[i+1]-d[i]);
		f[i][v][1]=f[i][v][0]+(w[i-1]+(w[n]-w[v]))*(d[v]-d[i]);
	}
	for(int j=v+1;j<=n;j++){
		f[v][j][1]=f[v][j-1][1]+(w[v-1]+(w[n]-w[j-1]))*(d[j]-d[j-1]);
		f[v][j][0]=f[v][j][1]+(w[v-1]+(w[n]-w[j]))*(d[j]-d[v]);
	}
	for(int i=v-1;i>=1;i--){
		for(int j=v+1;j<=n;j++){
			f[i][j][0]=min(f[i+1][j][0]+(w[i]+(w[n]-w[j]))*(d[i+1]-d[i]),f[i+1][j][1]+(w[i]+(w[n]-w[j]))*(d[j]-d[i]));
			f[i][j][1]=min(f[i][j-1][0]+(w[i-1]+(w[n]-w[j-1]))*(d[j]-d[i]),f[i][j-1][1]+(w[i-1]+(w[n]-w[j-1]))*(d[j]-d[j-1]));
		}
	}
	cout<<min(f[1][n][0],f[1][n][1]);
    return 0;
}
相关推荐
逻辑驱动的ken9 小时前
Java高频考点场景题24
java·开发语言·面试·职场和发展·求职招聘
绛橘色的日落(。・∀・)ノ9 小时前
机器学习之评估与偏差方差分析
算法
兔小盈10 小时前
多线程-(五)线程安全之内存可见性
java·开发语言·多线程
消失的旧时光-194310 小时前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
yaoxin52112310 小时前
400. Java 文件操作基础 - 使用 Buffered Stream I/O 读取文本文件
java·开发语言·python
AI_Ming10 小时前
从0开始学AI:层归一化,原来是这回事!
算法·ai编程
折哥的程序人生 · 物流技术专研10 小时前
《Java面试85题图解版(二)》进阶深化上篇:并发编程 + JVM
java·开发语言·后端·面试
WL_Aurora10 小时前
备战蓝桥杯国赛【Day 8】
算法·蓝桥杯
螺丝钉的扭矩一瞬间产生高能蛋白10 小时前
QT的C++接口基础用法
c++·qt·嵌入式软件·嵌入式linux·linux应用
2501_9318037511 小时前
Go:一门为解决C语言痛点而生的现代语言
c语言·开发语言·golang