BAPC 2014 Preliminary D
Posted tingtin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BAPC 2014 Preliminary D相关的知识,希望对你有一定的参考价值。
题目链接: https://nanti.jisuanke.com/t/28204
//动态规划,重复利用子问题的最优,来求解当前最优问题
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
typedef long long ll;
int t;
const int N=1600;
int s[N];
int dp[N];//在第i层下楼时从一楼到i楼共生气的最小值
const int inf=0x3f3f3f3f;
int main()
{
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int sum=0;
for(int i=1;i<=n;i++)
{
scanf("%d",&s[i]);
sum+=s[i];
}
dp[0]=0;
int ski;
for(int i=1;i<=n;i++)
{
sum-=s[i];//这一层下楼,那么此时前面的都会下,sum为高层人数。
ski=0;
dp[i]=inf;
for(int j=i-1;j>=0;j--)
{
dp[i]=min(dp[i],dp[j]+ski+sum);//
ski+=(i-j)*s[j];//该在j层下,却在i 层才下楼
}
}
//因为dp[i]为i层下楼的。。,因此用不下楼来更新
printf("%d
",dp[n]);
}
return 0;
}
以上是关于BAPC 2014 Preliminary D的主要内容,如果未能解决你的问题,请参考以下文章
BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 A. Choosing Ice Cream-gcd B. Failing C
The Preliminary Contest for ICPC Asia Nanjing 2019 D. Robots(概率dp)
BAPC2014 B&&HUNNU11582:Button Bashing(BFS)
The Preliminary Contest for ICPC Asia Nanjing 2019/2019南京网络赛——题解