小車的顏色

2021-08-17 03:56:31 字數 1484 閱讀 3240

多組資料,首先是乙個整數t,表示測試資料的組數。每組資料的格式為:

第1 行:乙個大寫字串,表示第乙個佇列的小車的顏色,1 <= n <= 5000

第2 行:乙個大寫字串,表示第二個佇列的小車的顏色,1 <= m <= 5000

每組資料輸出一行,表示合併方案的最小l(c)的總和

2 aaabbcy

abbbcdeey

gbby

yrrgb

10 12

30%的資料t = 1,2 <= n, m <= 20

100%的資料t <= 5, 1 <= n, m <= 5000

凍龜題,就不賣關子了,直接給狀態。

f[i][j]記錄前i 輛第一隊的車與前j 輛第二隊的車合併的最小代價。

討論最後乙個(第i+j)位置放哪一隊的車。顯然,如果最後放的這輛車的顏色之後未出現過,那麼代價應加上(i+j)。為了消除後效性,如果這種顏色的車子之前未出現過,代價減去(i+j)。

上偽**或許好理解一些。

temp1=f[i-1][j],temp2=f[i][j-1];

if(一隊第i 輛車的顏色之前未出現過)temp1-=i+j;

if(一隊第i 輛車的顏色之後未出現過)temp1+=i+j;

if(二隊第j 輛車的顏色之前未出現過)temp2-=i+j;

if(二隊第j 輛車的顏色之後未出現過)temp2+=i+j;

f[i][j]=min(temp1,temp2);

此外,似乎要用滾動陣列?

不太清楚。

比較喜歡寫記憶化搜尋~

#include 

#include

#include

#include

using namespace std;

char s[2][5005];

int n,f[5005][5005],l1[26],r1[26],l2[26],r2[26],h[5005][5005];

int g(int x,int y)

int main()

for(j=0;j<26;j++)

for(i=n;i;--i)

if(s[0][i]-'a'==j)

for(j=0;j<26;j++)

for(i=1;i<=m;i++)

if(s[1][i]-'a'==j)

for(j=0;j<26;j++)

for(i=m;i;--i)

if(s[1][i]-'a'==j)

printf("%d\n",g(n,m));

}return 0;

}

滾動的小車

滾動的小車 動畫技術作為計算機圖形學的一部分,已廣泛應用。產生動畫所採用的方法,有 以下幾種 1 bitblt動畫,關鍵在於畫面儲存和重放。主要用於處理螢幕的一部分,動畫速 度受到顯示解析度 顯示模式及圖形大小等限制。2 線框動畫,關鍵在於圖形頁面的互換,處理物件是分別存放在不同圖形頁面上 的一系列...

智慧型循跡小車 循跡小車電子製作

第一步根據元器件清單清點器件,看是否缺件少件。下圖是元器件全家福 第二步依次焊接元器件 要先焊接小的元器件,再焊接大的元器件,最後粘上電池座和馬達。焊接好所有元器件後再次肉眼檢查有沒有焊反,虛焊漏焊的點。確認無誤後,進行第三步。第三步裝上電池除錯。電馬達的2根線可能會裝反,光敏電阻和發光二極體的相對...

STM32平衡小車 平衡小車的PID環體會心得

2018年12月11日17 47 56更新 平衡環 p可增加響應速度 p過小,響應太慢,不能達到直立。p過大,會出現大幅度的低頻抖動。d可消除p大了之後產生的大幅低頻抖動。d過大,會出現高頻抖動。速度環 p可增加速度的響應,i和p有比例關係i p 200.p過小,響應慢,出現的現象是加速減速慢,遲鈍...