Halloween Costumes LightOJ - 1422(区间dp)

SAP MTO实战:从销售订单到生产订单的精准触发与配置详解 本文深入解析SAP系统中按订单生产(MTO)模式的核心流程与配置。详细阐述了如何通过精准配置物料主数据策略组、需求类型及计划策略(如策略50),实现从销售订单自动触发生产订单的完整链路。文章结合实战案例,指导用户打通销售与生产环节,并提供了关键事务代码与常见问题排查指南,助力企业实现以销定产,优化库存与成本控制。 阅读详情

Halloween Costumes LightOJ - 1422

Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is planning to attend as many parties as he can. Since it's Halloween, these parties are all costume parties, Gappu always selects his costumes in such a way that it blends with his friends, that is, when he is attending the party, arranged by his comic-book-fan friends, he will go with the costume of Superman, but when the party is arranged contest-buddies, he would go with the costume of 'Chinese Postman'.

Since he is going to attend a number of parties on the Halloween night, and wear costumes accordingly, he will be changing his costumes a number of times. So, to make things a little easier, he may put on costumes one over another (that is he may wear the uniform for the postman, over the superman costume). Before each party he can take off some of the costumes, or wear a new one. That is, if he is wearing the Postman uniform over the Superman costume, and wants to go to a party in Superman costume, he can take off the Postman uniform, or he can wear a new Superman uniform. But, keep in mind that, Gappu doesn't like to wear dresses without cleaning them first, so, after taking off the Postman uniform, he cannot use that again in the Halloween night, if he needs the Postman costume again, he will have to use a new one. He can take off any number of costumes, and if he takes off k of the costumes, that will be the last k ones (e.g. if he wears costume A before costume B, to take off A, first he has to remove B).

Given the parties and the costumes, find the minimum number of costumes Gappu will need in the Halloween night.

Input

Input starts with an integer T (≤ 200), denoting the number of test cases.

Each case starts with a line containing an integer N (1 ≤ N ≤ 100) denoting the number of parties. Next line contains N integers, where the ith integer ci (1 ≤ ci ≤ 100) denotes the costume he will be wearing in party i. He will attend party 1 first, then party 2, and so on.

Output

For each case, print the case number and the minimum number of required costumes.

Sample Input

2

4

1 2 1 2

7

1 2 1 1 3 2 1

Sample Output

Case 1: 3

Case 2: 4
题意:

万圣节到了,有N个party,对于每一个party,都要穿一种服装,服装可以套着穿,但是脱了的不能再用,参加party必须按顺序来,从第一个到第N个,问参加这些party最少需要几件服装

分析:

dp[i][j]代表从区间i到区间j最少的穿衣数量

因为从前往后看的话每一个状态都可能影响后面的状态,这样需要我们从后往前递推

那么在dp[i][j]这个状态的穿衣数就分为下面两种情况:

1) 如果在i位置我新穿上a[i]这件衣服的话,那么很明显这时

dp[i][j]=dp[i+1][j]+1dp[i][j]=dp[i+1][j]+1

也就是后面的最少需要的衣服数量加上这一件

2)如果我在[i+1,j] 区间当中能够找到一个party所需要的衣服和i位置需要的衣服相同,那么在i位置我可以不用新穿一件a[i]衣服,那当前的衣服数应该是多少呢?

我们有 dp[i][j]=dp[i+1][k−1]+dp[k][j]dp[i][j]=dp[i+1][k−1]+dp[k][j]

什么意思呢?

我们就假设k处需要的衣服和i处相同,这样我可以把k处衣服穿在最外面,这样同样就可以参加i party了,然后里面套着的是k之后的衣服,然后参加完i party后,参加i+1,i+2…,这样就是两部分加起来之和为最小数量

因此状态转移方程为

dp[i][j]=min(dp[i+1][j]+1,dp[i+1][k−1]+dp[k][j])dp[i][j]=min(dp[i+1][j]+1,dp[i+1][k−1]+dp[k][j])

code:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n;
int a[105];
int dp[105][105];
int main(){
    int t;
    scanf("%d",&t);
    int cas = 0;
    while(t--){
        scanf("%d",&n);
        for(int i = 1; i <= n; i++){
            scanf("%d",&a[i]);
        }
        memset(dp,0,sizeof(dp));
        for(int i = n; i >= 1; i--){
            for(int j = i; j <= n; j++){
                dp[i][j] = dp[i+1][j] + 1;
                for(int k = i+1; k <= j; k++){
                    if(a[i] == a[k])
                        dp[i][j] = min(dp[i][j],dp[i+1][k-1]+dp[k][j]);
                }
            }
        }
        printf("Case %d: %d\n",++cas,dp[1][n]);
    }
    return 0;
}
使用LSTM(长短期记忆)模型处理文本数据的典型流程 对于序列到序列的任务(如机器翻译),可以使用LSTM的隐状态来生成目标序列。这些向量捕获了词之间的语义关系,每个词都被表示为一个高维空间中的点,语义上相似的词在向量空间中彼此靠近。这通常是通过创建一个词汇表(vocabulary)来实现的,词汇表中的每个词都会被分配一个唯一的数字ID。:由于LSTM等循环神经网络(RNN)需要固定长度的输入,所以需要将不同长度的句子填充到相同的长度。由于计算机不能直接理解连续的文本,第一步是将文本分割成独立的词或标记(token)。:将词嵌入作为输入传递给LSTM模型。 阅读详情

相关推荐

【无标题】ReaxFF拟合参数以及算法安装

ReaxFF拟合参数以及算法安装

zmzyzm的博客 1418

LightOJ 1422 Halloween Costumes 区间DP

题意:给你n天分别要穿的衣服,可以套着穿,但是一旦脱下来就不能再穿了,问这n天要准备几件衣服。 第一次做区间DP,看着题解们想了很久才想通orz... dp[i][j]为第i天到第j天要穿的最少衣服,考虑第i天,如果后面的[i+1, j]天的衣服不要管,那么dp[i][j] = dp[i + 1][j] + 1。 然后在区间[i +1, j]里面找到和第i天衣服一样的日子,尝试直到那天都不把

水果君の日常 3892

NAO V6 开发环境的配置(附所有文件)

NAO V6开发环境配置前言环境Robot SettingsChoregraphe 2.8.5.10python2.7+naoqi2.8+opencv4.1.0putty与FileZilla 前言 学校的机器人摸索了一段时间,之前摸爬滚打探索环境,之前没接触这类机器人可能会非常艰辛,希望能给需要的人一些帮助。Nao与pepper通用 环境 win10(x64)+naoqi2.8 1、Robot S...

wbhhello的博客 3219

(区间dp)lightoj1422 Halloween Costumes

lightoj1422 Halloween Costumes 题意&思路: 给你n天参加party需要穿的衣服的样式,可以在衣服外面套衣服,脱掉的衣服就不能再穿(同样的样式有无数件),问最少需要多少衣服。 用dp[l][r]表示从l到r天要几件衣服,易得dp[i][i]=1。 第r天要穿新的衣服的话就是,dp[l][r]=dp[l][r-1]+1。 如果存在一天k(l≤k<r)使a[...

Z7784562的博客 231

机器人动力学与控制学习笔记(一)————机器人控制概述

一、概述 1、机器人控制的目的 对自由运动机器人来说,控制的目的是要控制机器人手端的位置和姿态(以后统一简称为位姿),即所谓位置控制问题。这时希望机器人手端所达到的位置称为期望位置或期望轨迹。期望轨迹可以在机器人任务空间中给出,也可以通过逆运动学关系转化为机器人关节空间中的期望轨迹。期望轨迹通常有两种形式:一种是一个固定位置(即固定点),另一种是一条随时间连续变化的轨迹。自由运动机器人位置控制的目的,是要使机器人手端从任意起始位置出发都能到达期望轨迹。当期望轨迹是固定点时的位置控制称为定...

冰与火的青春的博客 6879

全球AI算力最强公司分析报告

全球AI算力最强公司分析报告显示,Google凭借自研TPU技术和庞大数据中心网络位居榜首,拥有约100万至150万块等效H100 GPU算力。微软、Meta和亚马逊紧随其后,分别拥有75万、55万和25万块等效H100 GPU。中国企业中,百度、阿里巴巴和腾讯表现突出,华为在国产AI芯片领域领先。技术指标上,NVIDIA H100相比A100性能显著提升,但功耗也大幅增加。未来AI算力需求将持续激增,预计2028年全球市场将超2000亿美元。新兴挑战者如xAI可能改变竞争格局。

MyySophia的博客 5707

LightOJ 1422 Halloween Costumes(区间dp)

题目链接: LightOJ 1422 Halloween Costumes 题意: 需要去参加nn个聚会,每个聚会可能需要穿不同的衣服,用数字编号表示(1−1001-100)。如果连续的聚会需要穿的衣服一样,那就不用换衣服,也可以选择在身上的衣服外面再套上新的衣服,但是脱下的衣服不能在用于剩下的聚会的了,问最少需要准备多少件衣服? 数据范围:n≤100n\leq 100 分析: 先解释下

ramay7 497

ROS从入门到精通0-4:VSCode 搭建 ROS 工程环境

为了提高开发效率,可以先安装集成开发工具和使用方便的工具,本教程用VSCode搭建ROS工程环境

FRIGIDWINTER的博客 1万+

Halloween Costumes LightOJ - 1422 区间dp

Halloween Costumes LightOJ - 1422 区间dp 题目链接 题目大意:按顺序去参加舞会。每个舞会对衣服都有要求。可以连续穿好多件衣服。需要时候就脱下来,但是一旦脱下来,这件衣服就报废了。问最少需要几件衣服。 输入: T组样例 4 1 2 1 2 输出: 3 第一天人穿1,第二天穿2,套在1外边,第三天脱2,漏出1,最后一天穿2。一共穿三次 思路: ...

deerly_的博客 300

56、CAN总线RC低通滤波器截止频率计算与实战

本文详细探讨了CAN总线RC低通滤波器的设计与应用。作者通过实际项目案例,分析了CAN总线噪声频谱特性,提出截止频率计算的"黄金法则",强调需考虑收发器输入阻抗的并联效应。文章给出RC参数选择的经验值(R=100Ω-1kΩ,C=10pF-100pF),并指出PCB布局的关键要点:RC应紧贴收发器引脚,电容接地端需直接连接地平面。最后建议结合示波器和眼图验证效果,并提醒RC滤波器只是抗干扰方案的一部分,良好的PCB布局设计才是根本。

2401_88858637的博客 70

2026年高教社杯数学建模国赛A题解题思路:从物理方程推导到MATLAB高效求解的全流程实战指南

□所有代码能够从头运行到尾,不报错(清除workspace重新跑一遍)□论文中的每个图号、表号、公式编号与正文引用一致□附录中附上核心代码(注意:不是全部代码,而是关键求解器和后处理部分)□支撑材料压缩包包含完整代码、数据文件、README说明□摘要字数严格控制在1000字以内,突出创新点和核心结果□。

YOLO 109

lightoj 1422 - Halloween Costumes 【区间dp入门】

1422 - Halloween Costumes PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Gappu has a very busy weekend ahead of him. Because, next

世界很大 659

【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话

前面我们实现了RAG基本流程,今天我们在此基础上给它加个UI界面,在浏览器打开,实现上传本地文件、解析,并用大模型实现与该文档的对话。也就是一个阉割版demo版的ChatPDF或知识库对话系统。

同学小张的博客 3053

lightoj 1422 - Halloween Costumes(区间DP)

题目链接:点击打开链接 题意:有n个舞会, 每个舞会规定要穿哪个衣服, 衣服可以套着穿, 一旦脱下一件衣服, 再穿时要穿新的, 求最少要准备多少套衣服。 思路:一开始手算了一下, 发现普通的贪心策略是行不通的, 因为可能情况太多, 那么显然这肯定是一道DP了, 只是没想到是区间DP, 找了很多状态都不对。 问题的关键是, 如果有几件衣服都在不同舞会出现, 那么到底是选择哪一件衣服留到后边穿。

AC_Arthur的专栏 1616

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LightOj 1422 Halloween Costumes 两种姿势详解(区间DP)

1422 - Halloween Costumes     PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Gappu has a very busy weekend ahead of him. Because, n

K键盘里的青春K 2464

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LightOJ 1422 Halloween Costumes 区间dp

题意: 一个人要去参加n个晚会, 一个长度为n的序列给出每个晚会要穿的衣服类型, 这个人可以套着穿无数件, 但是只要脱下来就必须换新衣服. 问最少这个人要消耗多少件衣服. 思路: 区间dp维护区间内, 这个人最少消耗多少件衣服. 长度为1的区间一定是1. ①长度为x的区间, 先赋为x, 代表最差情况下, 每到一个晚会就换一件新的衣服. ②当这个区间的头尾相同时, 可以只消耗长度为x-1的...

swqeaaa的博客 186

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

[LightOJ - 1422] Halloween Costumes(区间dp)

链接 LightOJ - 1422\text{LightOJ - 1422}LightOJ - 1422 题意   这里有nnn次宴会,每个宴会有一个特定的编号,每个宴会需要一件特定衣服,nnn次宴会有顺序,衣服可以套着穿,一件衣服脱下后不能在穿,问最少需要买多少件衣服,如宴会为1、2、1、2,开始买衣服1,然后买衣服2,第三个宴会为1,此时身上是有宴会1的...

梧桐 250

lightoj 1422 Halloween Costumes(区间dp)

B - Halloween Costumes Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1422 Appoint description: Description Gappu h

哇咔咔 677

区间dp LightOj 1422 Halloween Costumes

题目链接: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27130 题意: 一个人赶几场舞会,每场舞会穿的衣服不一样。规定衣服可脱,重新穿时算新的一件。因为可以几件衣服套在一起,问最少用几件新衣服。 思路: 在解释中理清思路。dp[i][j]为第i到第j场需要穿的最少衣服数目。对于每个dp,初始化为dp[i][j

beihai2013 393

LightOJ 1422 Halloween Costumes (区间dp)

1422 - Halloween Costumes PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Gappu has a very busy weekend ahead of him. Beca

mousehao 893

LightOJ 1422 Halloween Costumes 【区间DP】

题目链接:http://lightoj.com/volume_showproblem.php?problem=1422解法:dp[i][j]=min(1+dp[i+1][j],dp[i+1][k-1]+dp[k][j]) 代码:#include <stdio.h> #include <ctime> #include <math.h> #include <limits.h> #include <co

mfcheer 788

LightOj 1422 Halloween Costumes(区间dp)

区间dp 区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的最优解进而得出整个大区间上最优解的dp算法。 把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。 可以枚举区间长度len为每次分割成的小区间长度(由短到长不断合并),内层枚举该长度下可以的起点,自然终点也就明了了。然后在这个起点终点之间枚举分割点,求解这段小区间在某个分割点下的...

H4ppyD0g的博客 248

LightOj 1422 Halloween Costumes(区间DP)

LightOj 1422 Halloween Costumes(区间DP)

Dacc123的博客 939

LightOJ 1422 Halloween Costumes(区间DP)

个人博客→TanJX的自留地 Halloween Costumes Gappu has a very busy weekend ahead of him. Because, next weekend is Halloween, and he is planning to attend as many parties as he can. Since it’s Halloween, these pa...

Tan_JX 203

LightOJ 1422 Halloween Costumes (区间dp)

题意:有n个聚会,每个聚会都会规定穿什么衣服,你可以将衣服套着穿,但是衣服脱下来就不能再穿了,除非再买一件,求至少需要多少件衣服。 题解:区间dp 用dp[i][j]dp[i][j]dp[i][j]表示第iii天到第jjj天最少需要多少件衣服,逆着区间dp。 我们先假设第iii天和第i+1i+1i+1天衣服不同(即使相同后面取min也会忽略),那么可以得到转移方程:dp[i][j] = dp[i ...

gongyuandaye的博客 301

LightOJ 1422 Halloween Costumes(区间DP)

题目链接:点击打开链接 题意: 按题目序号顺序参加舞会,每个舞会对衣服都有要求,身上可以套好多件衣服,需要时候就脱下来,但脱下来之后,这件衣服就不能再用了,最少需要几件衣服? 思路: 区间DP,dp[i][j]表示从i到j舞会最少需要的衣服,边界DP[i][i] = 1; 对于区间i,j,若a[i] = a[j],则j舞会直接穿i的衣服即可,先令dp[i][j] = dp[i][j -

不忘初心 448
上一篇: Binary String Constructing(思维+构造)
下一篇: Problem L. Graph Theory Homework HDU - 6343(思维)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值