noi 6045 开餐馆

题目链接:http://noi.openjudge.cn/ch0206/6045/

解题报告:参考了konjac 蒟蒻的。

题意: 有N个地址,从中选一些开餐馆,要保证相邻餐馆的距离大于k。问最大利润。

解法: f[i] 表示 前 i  个地址中选取的最大利润。

#include <bits/stdc++.h>
using namespace std; const int Maxn = ,INF = 0x3f3f3f3f; int m[Maxn],p[Maxn];
int f[Maxn]; int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,w;
scanf("%d%d",&n,&w); for(int i=; i<=n; i++) scanf("%d",&m[i]);
m[] = -INF; for(int i=; i<=n; i++) scanf("%d",&p[i]); f[] = ; for(int i=; i<=n; i++)
{
f[i] = max(f[i-],p[i]); for(int j=; j<i; j++)
{
if(m[i]-m[j]>w)
f[i] = max(f[i],f[j]+p[i]);
else break;
} } printf("%d\n",f[n]); } return ;
}
上一篇:kudu的读取数据流程


下一篇:关于Android文件Apk下载的那点事