LightOJ 1422 Halloween Costumes
2024-08-26 08:45:05
dp[i]][j]=min(dp[i+1][j]+1,dp[i+1][k-1]+dp[k][j])
表示第i天到j的最小数量。如果第i天的衣服只自己穿的话,不考虑后面的就是dp[i][j]=dp[i+1][j]+1.否则就是dp[i][j]=dp[i+1][k-1]+dp[k][j],其中第k天的衣服和第i天一样,这就是考虑第i天以后还有和它穿的衣服一样的情况
//#pragma comment(linker, "/STACK:167772160")//手动扩栈~~~~hdu 用c++交
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<queue>
#include<stack>
#include<cmath>
#include<set>
#include<algorithm>
#include<vector>
// #include<malloc.h>
using namespace std;
#define clc(a,b) memset(a,b,sizeof(a))
#define LL long long
const int Inf = 0x3f3f3f3f;
const double eps = 1e-;
const double pi = acos(-);
// inline int r(){
// int x=0,f=1;char ch=getchar();
// while(ch>'9'||ch<'0'){if(ch=='-') f=-1;ch=getchar();}
// while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
// return x*f;
// } int a[];
int dp[][]; int main(){
int t;
int cas=;
scanf("%d",&t);
while(t--){
clc(dp,);
int n;
scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]); for(int i=;i<=n;i++)
for(int j=i;j<=n;j++){
dp[i][j]=i-j+;
}
for(int i=n;i>=;i--){
for(int j=i;j<=n;j++){
dp[i][j]=dp[i+][j]+;
for(int k=i;k<=j;k++){
if(a[k]==a[i])
dp[i][j]=min(dp[i][j],dp[i+][k-]+dp[k][j]);
}
}
}
printf("Case %d: %d\n",cas++,dp[][n]);
}
return ;
}
最新文章
- java怎么导入一个项目到eclipse
- ajax方法总结
- [20160725]MyComparableTest
- 自己写了个H5版本的俄罗斯方块
- 转-CSS3 圆角(border-radius)
- WordPress定位当前使用模版
- MicroSD卡(TF卡)SPI模式实现方法
- Objective-C 编程艺术 (Zen and the Art of the Objective-C Craftsmanship 中文翻译)
- Spring MVC 简单介绍
- Android OpenGL ES(三)OpenGL ES API 命名习惯 .
- September,开启一个新的征程!
- cbp2make使用
- css与html基础收集
- sip 注册流程
- Struts2之类型转换
- springaop---->;springaop的使用(一)
- anu - react
- JS中的getter与setter
- Two Sum(II和IV)
- Python算法应用实战之队列详解
热门文章
- 返回canceled 代码 的原因
- PAT-乙级-1031. 查验身份证(15)
- C++中怎么获取类的成员函数的函数指针?
- 阿里云,CentOS下yum安装mysql,jdk,tomcat
- POJ1905Expanding Rods(二分)
- [java线段树]2015上海邀请赛 D Doom
- Python之函数篇
- Flex 选项卡加载方式简介
- 用PHP尝试RabbitMQ(amqp扩展)实现消息的发送和接收
- php 类 成员变量 $this->;name=&#39;abc&#39;