【蓝桥杯集训27】区间DP(2 / 2)
创始人
2025-06-01 20:24:08
0

目录

282. 石子合并

区间dp常用模板

320. 能量项链 - 区间合并dp


282. 石子合并

活动 - AcWing 

题目:

  • 每堆石子有一定的质量,可以用一个整数来描述,现在要将这 N 堆石子合并成为一堆
  • 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同
  • 例如有 4 堆石子分别为 1 3 5 2, 我们可以先合并 1、2 堆,代价为 4,得到 4 5 2, 又合并 1、2 堆,代价为 9,得到 9 2 ,再合并得到 11,总代价为 4+9+11=24
  • 如果第二步是先合并 2、3 堆,则代价为 7,得到 4 7,最后一次合并代价为 11,总代价为 4+7+11=22
  • 找出一种合理的方法,使总的代价最小,输出最小代价

思路:

定义f[i][j]为将【i,j】这一段石子合并成一堆的方案的最小代价

i是左端点,j是右端点

  • 当i
  • 当i==j时,只有一段石子,则代价为0

区间dp常用模板

所有的区间dp问题枚举时,第一维通常是枚举区间长度,len=1时,只有1堆,代价为0

因此枚举从 len = 2 开始;第二维枚举左端点 i (右端点 j 自动获得,j = i + len - 1) 

for(int len=1;len<=n;len++) //枚举长度
{for(int i=1;i+len-1<=n;i++) //枚举左端点{int j=i+len-1; //得到右端点if(len==1) {f[i][j]=0;continue;}for(int k=i;k
import java.util.*;class Main
{static int N=330;static int[][] f=new int[N][N];static int[] s=new int[N];public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();for(int i=1;i<=n;i++){s[i]=sc.nextInt();s[i]+=s[i-1];}for(int i=1;i<=n;i++)  Arrays.fill(f[i],0x3f3f3f3f);for(int len=1;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1;if(len==1) {f[i][j]=0;continue;}for(int k=i;k

 

320. 能量项链 - 区间合并dp

活动 - AcWing

题目:

题目太长不想解释,点开链接自己看呗~

思路:

  • 环形问题,将数组开成2*n
  • 定义f[i][j]为【头标记i,尾标记j】这段能量珠合成的最大能量
  • i是头标记,j=i+len-1是尾标记,由于头尾标记中至少有一个中间值,因此len从3开始枚举
  • 枚举中间值k,求出所有情况的能量
  • 最后枚举1~n的能量球为头标记,看哪个球为起点能量值最大
import java.util.*;class Main
{static int N=210;static long[][] f=new long[N][N]; //f[i][j]:把头标记i 尾标记j这段能量珠合成一段的最大能量static int[] w=new int[N]; //为能量珠的能量public static void main(String[] args){Scanner sc=new Scanner(System.in);int n=sc.nextInt();for(int i=1;i<=n;i++){w[i]=sc.nextInt();w[n+i]=w[i]; //解决环形问题}for(int len=3;len<=2*n;len++) //i和j间至少有一个中间值才能合成{for(int i=1;i+len-1<=n*2;i++){int j=i+len-1;//k为合并两珠子的中间值(前一个的尾,后一个的头) for(int k=i+1;k

 

相关内容

热门资讯

家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...
中国军视网:日本妄言击沉福建舰... 本文转自【中国军视网】; 日本首相高市早苗发表涉台错误言论,公然挑战一个中国原则,甚至还有日本无知政...
重磅!东莞长安50万㎡产城发布... 在当下竞争激烈的市场环境中,中小企业如何突破成本压力,找到一片既能扎根成长又能眺望未来的理想栖息地?...
毕马威:政策、资本等多维着力 ... 由毕马威联合长三角G60科创走廊创新研究中心主办的“长三角高端装备新质领袖榜单发布仪式”于11月21...
河曲县开展驻村帮扶工作政策业务... 来源:河曲县融媒体中心 近日,我县组织开展驻村帮扶工作政策业务集中培训,进一步提升驻村帮扶干部...
羽绒服涨价与猪肉降价有关?经济... 中央气象台发布统计信息,14日至17日,我国今年下半年首轮大范围寒潮天气即将自西向东影响我国,多地降...
周勇,任上落马 11月21日,中央纪委国家监委网站发布通报: 国家能源集团乌海能源党委书记、董事长周勇涉嫌严重违纪违...