洛谷 P2365 任务安排【dp】
其实是可以斜率优化的但是没啥必要
设st为花费时间的前缀和,sf为Fi的前缀和,f[i]为分组到i的最小花费
然后枚举j转移,考虑每次转移都是把j到i分为一组这样意味着j及之后的都要增加s的时间,同时增加这段的结束时间/*F,取min即可
#include<iostream>
#include<cstdio>
using namespace std;
const int N=5005,inf=1e9;
int n,s,st[N],sf[N],f[N];
int read()
{
	int r=0,f=1;
	char p=getchar();
	while(p>'9'||p<'0')
	{
		if(p=='-')
			f=-1;
		p=getchar();
	}
	while(p>='0'&&p<='9')
	{
		r=r*10+p-48;
		p=getchar();
	}
	return r*f;
}
int main()
{
	n=read(),s=read();
	for(int i=1;i<=n;i++)
		st[i]=st[i-1]+read(),sf[i]=sf[i-1]+read();
	for(int i=1;i<=n;i++)
		f[i]=inf;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=i;j++)
			f[i]=min(f[i],f[j-1]+s*(sf[n]-sf[j-1])+st[i]*(sf[i]-sf[j-1]));
	printf("%d\n",f[n]);
	return 0;
}
洛谷 P2365 任务安排【dp】的更多相关文章
- 2018.07.09 洛谷P2365 任务安排(线性dp)
		P2365 任务安排 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间 ... 
- 洛谷P2365 任务安排(斜率优化dp)
		传送门 思路: 最朴素的dp式子很好考虑:设\(dp(i,j)\)表示前\(i\)个任务,共\(j\)批的最小代价. 那么转移方程就有: \[ dp(i,j)=min\{dp(k,j-1)+(sumT ... 
- [洛谷P2365] 任务安排
		洛谷题目链接:任务安排 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时 ... 
- [洛谷 P2365] 任务安排 (线性dp)
		3月14日第二题!! 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间 ... 
- 洛谷P2365 任务安排 [解法二 斜率优化]
		解法一:http://www.cnblogs.com/SilverNebula/p/5926253.html 解法二:斜率优化 在解法一中有这样的方程:dp[i]=min(dp[i],dp[j]+(s ... 
- 洛谷P2365 任务安排 [解法一]
		题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始 ... 
- 洛谷 P2365 任务安排_代价提前计算 + 好题
		最开始,笔者将状态 fif_{i}fi 定义为1到i的最小花费 ,我们不难得到这样的一个状态转移方程,即 fi=(sumti−sumtj+S+Costj)∗(sumfi−sumfj)f_{i}=(s ... 
- 洛谷P2365/5785 任务安排 题解 斜率优化DP
		任务安排1(小数据):https://www.luogu.com.cn/problem/P2365 任务安排2(大数据):https://www.luogu.com.cn/problem/P5785 ... 
- 洛谷P1108 低价购买[DP | LIS方案数]
		题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ... 
随机推荐
- safepoint与UseCountedLoopSafepoints
			safepoint: JIT编码时,会在代码中所有方法的返回之前,以及所有非counted loop的循环(无界循环)回跳之前放置一个safepoint(counted loop则没有放置safepo ... 
- Java面向对象学习-----类的成员变量
			类的成员变量: 猜数字游戏:一个类A有一个成员变量v,通过随机产生一个100内的整数给v赋值.定义一个方法,对A类的成员变量v进行猜. 没有猜对的情况下提示如果大了则提示大了,小了则提示小了,并且 ... 
- 使用mysql-proxy 快速实现mysql 集群 读写分离
			目前较为常见的mysql读写分离分为两种: 1. 基于程序代码内部实现:在代码中对select操作分发到从库:其它操作由主库执行:这类方法也是目前生产环境应用最广泛,知名的如DISCUZ X2.优点是 ... 
- codeforces  361A
			//这题看着吓人,为何这么水 #include<stdio.h> int main() { int n,m,i,j; while(scanf("%d%d",& ... 
- 【ZJOI2017 Round1练习】D8T2 sequence(DP)
			题意: 思路: #include <algorithm> #include <iostream> #include <cstring> #include <c ... 
- 关于变量__name__的理解
			__name__ 1. 基本含义 如果是放在Modules模块中,就表示是模块的名字: 如果是放在Classs类中,就表示类的名字: 2. 模块中的意义 这里重点说一下模块中的意义,这个用法在pyth ... 
- fastjson过滤器简单记录
			fastjson过滤器,该字段可以将转化的json字段遍历,方便实用 1 /** * 通用输出json * @param object * @return json字符串 */ public Stri ... 
- 洛谷 P1183 多边形的面积
			P1183 多边形的面积 题目描述 给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的.要求计算多边形的面积. 多边形被放置在一个 X-YX−Y 的卡笛尔平面上,它所有的边都平行于两条坐 ... 
- iframe显示滚动条
			子页面通过iframe加载,出现了竖向滚动条 最后查出原因:文档申明 iframe有滚动条的页面的文档申明 <!DOCTYPE html> 改成如下就行了 <!DOCTYPE HTM ... 
- C#的SplitPanel如何设置上下和左右
			定位到Orientation属性即可 
