博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA 4857 Halloween Costumes 区间背包
阅读量:4072 次
发布时间:2019-05-25

本文共 1242 字,大约阅读时间需要 4 分钟。

题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2858

题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再用了(可以再穿),问至少要带多少条衣服才能参加所有宴会

分组背包模板题:

 dp[i][j];若第j件穿,dp[i][j]=d[i][j-1]+1;

        若不穿,则可以想到,i到j-1区间内必须得有这件衣服,dp[i][j]=dp[i][k-1]+dp[k][j-1],i<=k<=j-1;a[j]==a[k];

代码:

        

#include
#include
#include
using namespace std;const int maxn=110;int a[maxn];int dp[maxn][maxn];int main(){ int t,i,j,k; while(cin>>t) { int p=1; while(t--) { int n,m; cin>>n>>m; int i,j; for(i=1;i<=n;i++) { cin>>a[i]; } memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) dp[i][i]=1; //cout<<"haha"<
=1;i--) { for(j=i+1;j<=n;j++) { dp[i][j]=dp[i][j-1]+1; for(k=i;k<=j-1;k++) { if(a[j]==a[k]) dp[i][j]=min(dp[i][j],dp[i][k-1]+dp[k][j-1]); } } } cout<<"Case "<
<<": "<
<

转载地址:http://pygji.baihongyu.com/

你可能感兴趣的文章
创建操作/删除多行数据的UITableView的细节
查看>>
验证码倒计时
查看>>
动态设置Cell的高度
查看>>
取消tableView多余的横线
查看>>
NSString MD5加密
查看>>
自定义导航条返回按钮
查看>>
数字字符串转化为时间字符串
查看>>
获取iOS版本号
查看>>
获取 一个文件 在沙盒Library/Caches/ 目录下的路径
查看>>
图片压缩
查看>>
检测缓存文件是否超时
查看>>
十进制字符串转十六进制字符串
查看>>
属性字符串(富文本)的使用
查看>>
cell上label的背景颜色在选中状态下改变的解决办法
查看>>
GPS定位
查看>>
地图、显示用户位置、大头针
查看>>
自定义大头针
查看>>
UIButton添加block点击事件
查看>>
利用runtime给类别添加属性
查看>>
iOS使用支付宝支付步骤
查看>>