dp50分求助
查看原帖
dp50分求助
214649
Real_Create楼主2020/10/26 21:16

RT

代码:

#include<bits/stdc++.h>
using namespace std;
struct book
{
	int c,k;
}a[105];
bool cmpa(book x,book y)
{
	return x.c<y.c;
}
unsigned long long dp[105][105];//我曾在极度愤怒时,干初始化时干了这件事
int main()
{
	int n,v;
	cin>>n>>v;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i].c>>a[i].k;
	}
	sort(a+1,a+1+n,cmpa);
	memset(dp,200000,sizeof(dp));
	dp[1][0]=0;
	for(int i=2;i<=n;i++)
	{
		for(int j=0;j<=min(i-1,v);j++)
		{
			for(int k=1;k<=min(i-1,j+1);k++)
			{
				dp[i][j]=min(dp[i][j],dp[i-k][j-k+1]+abs(a[i-k].k-a[i].k));//dp[i][j]是前i本书去掉j本最小的不整齐度
			}
		}
	}
	cout<<dp[n][v];
	return 0;
}
2020/10/26 21:16
加载中...