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

安慰MM

Description

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

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

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

现在知道第i个MM哭泣每秒钟会使tcboy降低 wi的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;
}
相关推荐
深圳市方中禾科技11 小时前
FZH1625 LCD 驱动芯片深度评测与实战指南
算法·led
菜鸟~noob23311 小时前
【电子战】第15篇:混合定位——TDOA/FDOA/AOA 联合【含matlab代码】
开发语言·matlab
我不会起名字32211 小时前
一天一道算法题(34):回溯法的经典例题(子集)
java·数据结构·python·算法·golang·深度优先·力扣
ThornArmor12 小时前
重铸1996|肉体渲染:关节的裂缝:分段模型积木拼装与未成熟的 RSP 矩阵骨骼动画形变
c语言·汇编·c++·python·硬件架构·游戏机
Dreams_l12 小时前
死信队列和延迟队列介绍
java·开发语言
Zenova EdgeOS13 小时前
Python 工业边缘 redis-py 异步实战
开发语言·redis·python
huang57914713 小时前
哈希算法的抗碰撞机制与安全性增强策略4
算法
林浩杨_14 小时前
SIGIR 2026|南京大学:Video-GAR:“通过生成 Query 来验证视频语义理解”的生成增强范式
论文阅读·人工智能·算法
君顾114 小时前
西安 24 小时自助健身房系统开发实战指南
java·开发语言·健身房
Logic10114 小时前
C语言/数据结构位运算题解:异或XOR找出货船中的“独特载货量“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质