随笔 - 531  文章 - 0  评论 - 3  阅读 - 10215 

给你一个长度为 n(1≤n≤500)n(1n500) 的数组 aa,每次你可以进行以下两步操作:

  1. 找到 i∈[1,n)i[1,n),使得 ai=ai+1ai=ai+1

  2. 它们 替换为 ai+1ai+1。

每轮操作之后,显然数组的长度会减小 11,问剩余数组长度的最小值。

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include<queue>
#include <cstring>
#define IOS std::ios::sync_with_stdio(0)
using namespace std;
 const int N =550;
 int a[N],f[N][N],n,num[N][N];
  
  
 void solve(){
    int i,j,k;
    cin>>n;
    memset(f,100,sizeof f);
    for(i=1;i<=n;i++)
        cin>>a[i],f[i][i]=1,num[i][i]=a[i];
     
    for(int len=2;len<=n;len++)
    for(i=1;i+len-1<=n;i++){
        j=i+len-1;
        for(k=i;k<j;k++){
            f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
            if(f[i][k]==1&&f[i][k]==f[k+1][j]&&
                num[i][k]==num[k+1][j]){
                    f[i][j]=1,num[i][j]=num[i][k]+1;   
                }
        }
    }
    cout<<f[1][n]<<endl;
 }
 signed main(){
     IOS;
     solve();
 }

 

posted on   towboat  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示