题目网址:https://www.luogu.com.cn/problem/P1880

题意是:给定一个序列,最小规则是相邻两个值的合并,开销是他们的和,将整个序列合并成一个值的情况下,求解该值的最小值和最大值。

代码如下:

 #include<bits/stdc++.h>
using namespace std;
typedef unsigned int ui;
typedef long long ll;
typedef unsigned long long ull;
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a))
#define prime1 1e9+7
#define prime2 1e9+9
#define scand(x) scanf("%llf",&x)
#define f(i,a,b) for(int i=a;i<=b;i++)
#define scan(a) scanf("%d",&a)
#define dbg(args) cout<<#args<<":"<<args<<endl;
#define pb(i) push_back(i)
#define ppb(x) pop_back(x)
#define inf 0x3f3f3f3f
#define maxn 1005
int n,m,t,max_ans,min_ans=inf,a[maxn],dp1[maxn][maxn],dp2[maxn][maxn],b[maxn];
int dfs1(int l,int r)//max
{
if(l==r)return ;
if(dp1[l][r])return dp1[l][r];
if(r==l+)return a[l]+a[l+];
int res=;
f(i,l,r-)
{ res=max(res,dfs1(l,i)+dfs1(i+,r)+b[r]-b[l-]);
}
return dp1[l][r]=res;
}
int dfs2(int l,int r)//min
{
if(l==r)return ;
if(dp2[l][r]!=inf)return dp2[l][r];
if(r==l+)return a[l]+a[l+];
int res=inf;
f(i,l,r-)
{
res=min(res,dfs2(l,i)+dfs2(i+,r)+b[r]-b[l-]);
}
return dp2[l][r]=res;
}
int main()
{
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
std::ios::sync_with_stdio(false);
scan(n);
mem(dp1,);
mem(dp2,inf);
max_ans=-inf;
min_ans=inf;
f(i,,n)
{
scan(a[i]);
a[i+n]=a[i];
}
f(i,,*n)
{
b[i]=b[i-]+a[i];
}
f(i,,n)
{
max_ans=max(max_ans,dfs1(i,n+i-));
min_ans=min(min_ans,dfs2(i,n+i-));
}
pf("%d\n%d",min_ans,max_ans);
}

最新文章

  1. Array.sort()方法
  2. 《统计推断(Statistical Inference)》读书笔记——第3章 统计分布族
  3. Java基础笔记-String类2
  4. css水平垂直居中
  5. Asp.Net MVC学习总结(一)——Asp.Net MVC简单入门
  6. 【Luogu3041】视频游戏的连击(AC自动机,动态规划)
  7. java thread yield 的设计目的是什么?
  8. Elasticsearch系列(1):认识Elasticsearch
  9. Google搜索
  10. Eclipse新建Java工程出现红色感叹号怎么解决?
  11. 电梯调度系统(界面由C图形库编绘)
  12. PHP依赖倒置和控制反转
  13. Zookeeper系列二:分布式架构详解、分布式技术详解、分布式事务
  14. Tensorflow 使用slim框架下的分类模型进行分类
  15. Win10系列:UWP界面布局进阶1
  16. zsh与oh-my-zsh
  17. 向大家分享一个shell脚本的坑
  18. 护眼色的RGB值和颜色代码汇总
  19. ASP.NET中使用UpdatePanel时用Response输出出现错误的解决方法
  20. CHAPTER 5 ‘The Master of Those Who know’ Aristotle 第5章 “有识之士的大师” 亚里士多德

热门文章

  1. box-sizing: border-box
  2. numpy的索引
  3. let和const区别
  4. BTCU(高校区块链联盟)-联盟链第6讲作业
  5. Python——用turtle模块画海龟的第一步
  6. 8——PHP循环结构&&条件结构
  7. JavaScript 执行环境以及作用域链
  8. kafka知识整理
  9. 关于org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.atguigu.crud.dao.DepartmentMapper.insertSelective的错误
  10. aosp Pixel 修改 SIM 卡支持及解决网络带x问题