栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【YBTOJ】粉刷木板

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【YBTOJ】粉刷木板

思路:

设f[i][j]表示到第i个人,涂前j个
所以 f [ i ] [ j ] = m a x ( f [ i − 1 ] [ k ] + ( j − k ) ∗ p [ i ] ) f[i][j]=max(f[i-1][k]+(j-k)*p[i]) f[i][j]=max(f[i−1][k]+(j−k)∗p[i])
用单调队列滚掉 f [ i − 1 ] [ k ] − k ∗ p [ i ] f[i-1][k]-k*p[i] f[i−1][k]−k∗p[i]
然后滚动数组滚掉i

c o d e code code
#include
#include 
#include

using namespace std;

int n, m, f[101010], x[101010], q[101010], w[101010];
struct node
{
	int p, l, s;
}a[101010];

bool cmp(node x, node y)
{
	return x.stl)
				break;
			f[j]=max(f[j], q[hd]+a[i].p*j);
		}
		for(int j=2; j<=m; j++)
			f[j]=max(f[j], f[j-1]);
	}
	printf("%d", f[m]);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690217.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号