LightOJ - 1422 (區間DP)

題意:有t組數據,對于每組,有n個聚會需要參加,下面依次是參加各個聚會需要的衣服編號,要求所需要的衣服一定穿在外面,在操作的時候,可以選擇穿上一件衣服或脫下一件衣服,脫下的衣服不能繼續使用,問最少需要的衣服數量。

分析:在穿第j件衣服的時候,我們需要知道原先的狀態是否穿著第j件衣服,所以我們需要枚舉所有間斷的區間,需要用到區間dp

? ? ? ? ? dp[i][j]代表,從第i個聚會到第j個聚會需要的最少的衣服數量

? ? ? ? ? dp[i][j]最壞情況是第j件衣服是新穿的,dp[i][j]=dp[i][j-1]+1;

? ? ? ? ? 然后依次枚舉k,如果第k件衣服和j件衣服相同

? ? ? ? ? 那么 dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j-1])? (dp[i][k]保證最后一定有第k件衣服給第j次)

代碼如下:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
#define INF 0x3f3f3f3f
int dp[110][110];
int a[110];
int t,n,Case=0;
int main()
{scanf("%d",&t);while(t--){Case++;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){if(i==j)dp[i][j]=1;else if(i>j)dp[i][j]=0;else dp[i][j]=INF;}for(int l=1;l<=n-1;l++)for(int i=1;i<=n-l;i++){int  j=l+i;dp[i][j]=dp[i][j-1]+1;for(int k=i;k<j;k++){if(a[j]==a[k])dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j-1]);}}printf("Case %d: %d\n",Case,dp[1][n]);}return 0;
}

?

轉載于:https://www.cnblogs.com/a249189046/p/9639228.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451328.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451328.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python判斷字典,列表,元組為空的方法。

m1 []m2 ()m3 {}判斷他們為空的方法是什么&#xff1f; if m1:非空else:空if not m2: 空 else:非空False,0,,[],{},()都可以視為假

解決 JSP 頁面報錯 equal symbol expected

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 1.報錯&#xff1a;org.apache.jasper.JasperException: /WEB-INF/jsp/op/settlement/spRateModify.jsp(368,110) equal symbol expecte…

表單隱藏域與display:none

有時候前端進行表單填寫是分步驟的&#xff0c;每一步的時候其他步驟相關的表單視圖不可見&#xff1b; 針對"不可見"&#xff0c;以下有兩種處理方式&#xff1a; ①display&#xff1a;none 這種方式呢&#xff0c;比較簡單&#xff0c;就是將三個步驟分3個div&…

視頻領域的Instagram:Viddy用戶突破2600萬

北京時間5月9日消息&#xff0c;據TheNextWeb報道&#xff0c;視頻分享應用Viddy的注冊用戶數量已經達到2600萬&#xff0c;而上個月的用戶數量還是650萬。日均增長用戶超過50萬&#xff0c;成績斐然&#xff0c;投資者對Viddy目前的增長表示很滿意。 Viddy是如何達到這樣的成…

log 的 debug()、 error()、 info()方法的區別

軟件中總免不了要使用諸如 Log4net, Log4j, Tracer 等東東來寫日志&#xff0c;不管用什么&#xff0c;這些東東大多是大同小異的&#xff0c;一般都提供了這樣5個日志級別&#xff1a; Debug Info Warn Error Fatal 一個等級比一個高&#xff0c;但…

存儲容量(空間)換算公式(B、KB、MB、GB、TB、PB、EB)

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 <strong>存儲容量&#xff1a;是該存儲設備上可以存儲數據的最大數量&#xff0c;通常使用千字節&#xff08;kb kilobyte&#x…

如何防止表單的重復提交

表單重復提交是在多用戶Web應用中最常見、帶來很多麻煩的一個問題。有很多的應用場景都會遇到重復提交問題&#xff0c;比如&#xff1a; (1)點擊提交按鈕兩次。 (2)點擊刷新按鈕。 (3)使用瀏覽器后退按鈕重復之前的操作&#xff0c;導致重復提交表單。 (4)使用瀏覽器歷史記錄重…

GDB調試精粹及使用實例

一&#xff1a;列文件清單 1&#xff0e; List (gdb) list line1,line2 二&#xff1a;執行程序 要想運行準備調試的程序&#xff0c;可使用run命令&#xff0c;在它后面可以跟隨發給該程序的任何參數&#xff0c;包括標準輸入和標準輸出說明符(<和>)和外殼通配符&a…

如何使用log.debug()

log4j是一個開源的日志&#xff0c;共分為六個等級&#xff1a;LOG、DEBUG、INFO、WARN、ERROR、和FATAL。 DEBUG是其中的一種日志級別。一般我們用這個方法的時候都是這樣的&#xff1a; if(log.isDebugEnabled()){log.debug("debug&#xff01;"); } 意思是&am…

寫給大數據開發初學者的話

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 導讀&#xff1a; 第一章&#xff1a;初識Hadoop 第二章&#xff1a;更高效的WordCount第三章&#xff1a;把別處的數據搞到Hadoop上第…

2018年7月份,python上傳自己的包庫到pypi官網的方法

最近pypi官網進行了更新&#xff0c;老的上傳網址作廢了。記錄下上傳到pypi的方法 0、去pypi官網注冊賬號&#xff0c;沒賬號是不可能上傳的&#xff0c;想想也是那不亂套了嗎&#xff0c;注冊后會收到一個郵件需要點擊然后重新登錄 1、目錄就是這樣 &#xff0c;我要上傳muli…

linux系統C語言學習總結

引言   盡管 C 語言問世已近 30 年&#xff0c;但它的魅力仍未減退。C 語言繼續吸引著眾多的開發者&#xff0c;他們為了編寫、移植或維護應用程序而必須學習新技能。   本文是為了滿足對C語言初學者或想提高自身C語言修為的開發人員的需要而寫的。希望對您的學習和工作有…

redis 刪除操作

Redis 鍵(key) Redis 鍵命令用于管理 redis 的鍵。 語法 Redis 鍵命令的基本語法如下&#xff1a; redis 127.0.0.1:6379> COMMAND KEY_NAME 實例 redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> DEL runoobkey (integer) 1 在以上實例中 DEL 是…

寫給大數據開發初學者的話2

見 : http://lxw1234.com/archives/2016/11/782.htm 如果你已經按照《寫給大數據開發初學者的話》中第一章和第二章的流程認真完整的走了一遍&#xff0c;那么你應該已經具備以下技能和知識點&#xff1a; 0和Hadoop2.0的區別&#xff1b;MapReduce的原理&#xff08;還是那個…

Pandas的結構和應用

Pandas處理以下三個數據結構 - 系列(Series)----一維ndarray   特點&#xff1a;帶有標簽&#xff0c;可以使用標簽作為索引&#xff0c;大小不能改變&#xff0c;內部數據可以改變。 屬性&#xff1a;與NumPy類似&#xff0c;多了一個軸標簽axis lables 數據…

JZOJ5857 【NOIP提高組模擬A組2018.9.8】沒有上司的舞會

題目 Description “那么真的有果爾德施坦因這樣一個人?”他問道。 “是啊&#xff0c;有這樣一個人&#xff0c;他還活著。至于在哪里&#xff0c;我就不知道了。” “那么那個密謀——那個組織?這是真的嗎?不是秘密警察的捏造吧?” “不是&#xff0c;這是真的。我們管…

python 中如何判斷list中是否包含某個元素

在python中可以通過in和not in關鍵字來判讀一個list中是否包含一個元素 theList [‘a’,’b’,’c’] if ‘a’ in theList: print ‘a in the list’ if ‘d’ not in theList: print ‘d is not in the list’

時間即財富:創業者浪費精力的八個錯誤

導讀&#xff1a;本文作者Jeff Miller是美食網頁應用Punchfork的創始人&#xff0c;同時也是DuckDuckGo、Ginzametrics、Art.sy、DataMinr以及Forkly的投資人。作者通過對自己創業初期一些錯誤選擇進行盤點&#xff0c;告訴讀者在創業初期應該學會選擇&#xff0c;因為在創業初…

寫給大數據開發初學者的話3

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 如果你已經按照《寫給大數據開發初學者的話2》中第三章和第四章的流程認真完整的走了一遍&#xff0c;那么你應該已經具備以下技能和知識…

十五周二次課

18.6 負載均衡集群介紹 主流開源軟件LVS、keepalived、haproxy、nginx等其中LVS屬于4層&#xff08;網絡OSI 7層模型&#xff09;&#xff0c;nginx屬于7層&#xff0c;haproxy既可以認為是4層&#xff0c;也可以當做7層使用keepalived的負載均衡功能其實就是lvslvs這種4層的負…