2022/2/26DP专题赛总结

赛题链接:动态规划专题测评(易)

Problem A

  • 众所周知,这一题考的是语文。

Problem B

  • 几乎是区间DP的模板了;
  • 只有一种特殊情况:当两个区间的首尾两位相同时,操作数取 \([start,end-1]\) 和 \([start+1,end]\) 中较小的那个就可以了;

code:

点击查看代码
#include<bits/stdc++.h>
using namespace std;

int n;
int a[305];
int f[305][305];

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
		scanf("%d",&a[i]);
	memset(f,0x3f3f3f3f,sizeof(f));
	for(int i=0;i<=n;++i)
		f[i][i]=1;
	for(int l=1;l<n;++l)
		for(int s=1;s+l<=n;++s){
			int e=s+l;
			if(a[s]==a[e])
				f[s][e]=min(f[s][e-1],f[s+1][e]);
			for(int i=s;i<=e;++i)
				f[s][e]=min(f[s][e],f[s][i]+f[i+1][e]);
		}
	printf("%d",f[1][n]);
	return 0;
} 
上一篇:Axure插入echarts和Highcharts图表


下一篇:2022-2-27剑指offer day17