首页 > 其他分享 >Living-Dream 系列笔记 第79期

Living-Dream 系列笔记 第79期

时间:2024-09-20 21:12:19浏览次数:8  
标签:Living code int sum long 79 Dream dp

P1775

典。

code
#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N=3e2+5;
int n,a[N],sum[N],dp[N][N];

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	memset(dp,0x3f,sizeof dp);
	for(int i=1;i<=n;i++)
		cin>>a[i],sum[i]=sum[i-1]+a[i],dp[i][i]=0;
	for(int l=2;l<=n;l++){
		for(int i=1;i+l-1<=n;i++){
			int j=i+l-1;
			for(int k=i;k<j;k++)
				dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]);
			dp[i][j]+=sum[j]-sum[i-1];
		}
	}
	cout<<dp[1][n];
	return 0;
} 

P1040

很容易发现这玩意是个区间 dp。因为中序遍历是 左-根-右 的,考虑枚举根。

状态:令 \(dp_{i,j}\) 表示区间 \([i,j]\) 的最高加分。

初始:\(dp_{i,i}=a_i,dp_{i,i-1}=1\)。

转移:\(dp_{i,j}=dp_{i,k} \times dp_{k+1,j} + a_k\)。

答案:\(dp_{1,n}\)。

每次转移成功时顺便记录根即可。

code
#include<bits/stdc++.h>
#define int long long
using namespace std;

const int N=35;
int n,a[N],dp[N][N],rt[N][N];

void dfs(int l,int r){
	if(l>r)
		return;
	cout<<rt[l][r]<<' ';
	dfs(l,rt[l][r]-1);
	dfs(rt[l][r]+1,r);
}

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i],dp[i][i]=a[i],dp[i][i-1]=1,rt[i][i]=i;
	for(int l=2;l<=n;l++){
		for(int i=1;i+l-1<=n;i++){
			int j=i+l-1;
			for(int k=i;k<j;k++)
				if(dp[i][j]<dp[i][k-1]*dp[k+1][j]+a[k])
					dp[i][j]=dp[i][k-1]*dp[k+1][j]+a[k],rt[i][j]=k;
		}
	}
	cout<<dp[1][n]<<'\n';
	dfs(1,n);
	return 0;
} 

标签:Living,code,int,sum,long,79,Dream,dp
From: https://www.cnblogs.com/XOF-0-0/p/18423223

相关文章

  • P5979 [PA2014] Druzyny 题解
    对于一个固定的右端点\(r\),左端点\(l\)合法当且仅当\(\max(d_l,d_{l+1},\dotsd_r)\ler-l+1\le\min(c_l,c_{l+1},\dots,c_r)\)。容易得到一个很朴素的dp:记\(f_i\)表示前\(i\)个位置可以分成的组的数目的最大值,\(g_i\)表示有多少种分组方案能达到最大值,直接枚举左端点......
  • DREAMER
    DREAMER:ADatabaseforEmotionRecognitionthroughEEGandECG SignalsfromWirelessLow-costOff-the-ShelfDevices论文下载:https://pan.baidu.com/s/1dt66Xi62EggvTl5yAo9wfw?pwd=5umr 提取码:5umr 数据集下载:https://github.com/CodeStoreHub/EEG-datasets ......
  • Springboot基于Bootstrap的智能家居网站o79ok(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容随着物联网技术的迅猛发展,智能家居已成为现代家庭追求便捷、高效生活方式的重要趋势。为了响应市场需求,提升用户体验,本项目计划设计并实现一个基于B......
  • Springboot基于39健康网的个性化推荐系统794t1程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容随着互联网医疗和健康信息服务的快速发展,用户如何快速准确地获取符合自身需求的健康资讯成为一大挑战。39健康网作为国内领先的健康信息服务平台,拥......
  • 【数据结构与算法 | 灵神题单 | 自底向上DFS篇】力扣965, 2331, 100, 1379
    1.力扣965:单值二叉树1.1题目:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。示例1:输入:[1,1,1,1,1,null,1]输出:true示例2:输入:[2,2,2,5,2]输出:false提示:给定树的节点数范围是 [1,......
  • Springboot公司实习生培训系统p79f6--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着企业规模的扩大与业务复杂化,实习生成为企业新鲜血液的重要来源。然而,传统实习生培训方式存在效率低下、内容不统一、反馈滞......
  • BIOE7902 Event Detection
    BIOE7902–Assignment2–EventDetectionThegoalofthisassignmentistoreproducetheresultsofthispaperascloseaspossible:RaúlAlonsoÁlvarez,ArturoJ.MéndezPenín,X.AntónVilaSobrino-AComparisonofThreeQRSDetectionAlgorithmsOver......
  • jsp宠物饲养信息交流平台的设计与实现27934
    jsp宠物饲养信息交流平台的设计本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,文章类型,饲养经验,宠物资讯开题报告内容一、项目背景与意义在当今社会,宠物已成为众多家庭的重要成员,宠物的饲......
  • cefsharp.H264.x64.109(88、84、79)可播放视频包免费编译版
    一、下载网址:https://www.nuget.org/packages/CefSharp.H264.x64/109.1.110?_src=templateDownloadpackage(82.59MB)如果是直接下载的cefsharp.h264.x64.109.1.110.nupkg1、用解压缩软件,将这个文件解压缩2、在解压缩目录中(cefshap\cefsharp.h264.x64.109.1.110\cef),再次解压......
  • ABC179-AK记
    vp赛时AK!A-PluralForm考虑直接判断字符串结尾//BLuemoon#include<bits/stdc++.h>usingnamespacestd;usingLL=longlong;usingDB=double;constintkMaxN=2e5+5;strings;voidpr(boolpr){cout<<(pr?"Yes":"No&quo......