传送门

太难了,完全不懂

设\(dp[i][j]\)为第i天到第j天的最少代价

\(dp[i][j]=dp[i][j-1]+1\)(第j天多穿一件衣服)

\(dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j-1])\);(往前找一天k与j衣服相同,把中间的衣服都脱掉)

#include <bits/stdc++.h>
using namespace std;
int n,m,dp[209][209],a[209];
int main()
{
int t,o=1;
cin>>t;
while(t--)
{
cin>>n;
// memset(dp,20,sizeof(dp));
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++)
for(int j=i;j<=n;j++)
dp[i][j]=j-i+1;
for(int l=2;l<=n;l++)
{
for(int i=1;i+l-1<=n;i++)
{
int j=i+l-1;
dp[i][j]=dp[i][j-1]+1;//第j天穿衣服
//假如第j天不穿,那么要找一个K与第j天的衣服相同
//然后把k+1到j-1的衣服全部脱掉
for(int k=i;k<j;k++)
if(a[k]==a[j])
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j-1]);
}
}
cout<<"Case "<<o++<<": ";
cout<<dp[1][n]<<endl;
}
}

最新文章

  1. C - 搜索
  2. 开始研究tigase和android客户端的实现
  3. Spring利器之包扫描器
  4. Hive2 jdbc test
  5. MasterPage 变化了的 ClientID ctl00_
  6. Android中Listview实现分页加载效果OnScrollListener
  7. 如何让python程序运行得更快
  8. static int和static final int的区别
  9. Quartz中时间表达式的设置-----corn表达式
  10. 第11章:DOM扩展
  11. DB2中coalesce函数的应用
  12. 数据库DBUtils基本使用
  13. Cucumber 相关资源
  14. SpringCloud-sleuth-zipkin链路追踪
  15. 唯一索引的一种使用情景【有则U无则I】
  16. JS应用实例4:表格隔行换色
  17. python中的extend
  18. 在阿里云创建子域名,配置nginx,使用pm2部署node项目到ubuntu服务器
  19. C#动态加载/卸载Assembly的解决方案
  20. 切换nPar或vPar的启动模式

热门文章

  1. 条件变量 condition_variable wait_for
  2. tomcat通过tomcat 安装根目录下的conf-Catalina-localhost目录发布项目详解
  3. web网页html基础
  4. Java方法的重点
  5. Web三维编程入门总结之一:WebGL与Threejs入门知识
  6. D - Yet Another Monster Killing Problem
  7. 落谷 P1734 最大约数和
  8. Python冒泡排序算法及其优化
  9. linux下文本三剑客之sed
  10. JavaScript之浅谈内存空间