變色DNA(最短路思維題)

2022-07-30 18:24:18 字數 2263 閱讀 7875

個人心得:太水了,還是對最短路不太深入了解,無法構建出最短路模板,然後就是讀題能力,

這題的關鍵在於轉換為最短路模板,因為dfs我在24組超時了。

假設把從i到j的代價看做是權值,那麼就是對權值的確立了,顯而易見,權值跟前面出現的y的個數有關。

權值建立後就可以用最短路了,特意看了下最短路深入了解了下,每次選擇最短的確實可以確定此時的到x的最短路徑。

乙個話:多思考,多思考

題目:有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2...n-1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colormapi

'>i

ij'>j

j='y'則這只狼可以在某乙個夜晚從顏色i變成顏色j(一晚不可以變色多次),如果colormapi

'>i

ij'>j

j=『n』則不能在乙個晚上從i變成j色。進一步研究發現,這只狼每次變色並不是隨機變的,它有一定策略,在每個夜晚,如果它沒法改變它的顏色,那麼它就不變色,如果存在可改變的顏色,那它變為標號盡可能小的顏色(可以變色時它一定變色,哪怕變完後顏色標號比現在的大)。現在這只狼是顏色0,你想讓其變為顏色n-1,你有一項技術可以改變狼的一些基因,具體說你可以花費1的代價,將狼的變色矩陣中的某乙個colormapi

'>i

ij'>j

j='y'改變成colormapi

'>i

ij'>j

j='n'。問至少花費多少總代價改變狼的基因,讓狼按它的變色策略可以從顏色0經過若干天的變色變成顏色n-1。如果一定不能變成n-1,則輸出-1. 

input多組測試資料,第一行乙個整數t,表示測試資料數量,1<=t<=5 

每組測試資料有相同的結構構成: 

每組資料第一行乙個整數n,2<=n<=50。 

之後有n行,每行n個字元,表示狼的變色矩陣,矩陣中只有『y』與『n』兩種字元,第i行第j列的字元就是colormapi

'>i

ij'>j

j。output每組資料一行輸出,即最小代價,無解時輸出-1。sample input

3

3nyn

ynynnn

8nnnnnnny

nnnnyyyy

ynnnnyyn

nnnnnyyy

yyynnnnn

ynynynyn

nynynyny

yyyyyyyn

6nyyyyn

ynyyyn

yynyyn

yyynyn

yyyynn

yyyyyn

sample output

1

0-1

1 #include2 #include3 #include4 #include5 #include6 #include7 #include

8 #include9

using

namespace

std;

10const

int inf=0x3f3f3f3f;11

char mymap[55][55

];12

int book[55

];13

int s[55][55

];14

int cost[55

];15

int d[55

];16

struct

node

1723

};24

int sum=inf;

25int

t,n;

26 vectorv[55

];27

bool

operator

<(const node& a,const node&b)

2831

intsolve()50}

51}52return d[n-1]==inf?-1:d[n-1

];53}54

intmain()

72else

73 cost[j]=(j==0)?0:cost[j-1

];74 s[i][j]=(j==0)?0:cost[j-1

];75}76

}77 cout78for(int i=0;i)

79v[i].clear();80}

8182

83return0;

84 }

51NOD 1445 變色DNA 最短路

有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2 n 1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colormap i j y 則這只狼可以在某乙個夜晚從顏色i變成顏色j 一晚不可以變色多次 如果colormap i j n...

51nod 1445 變色DNA 最短路

1445 變色dna 基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 收藏關注有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2.n 1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colorm...

51nod 1445 變色DNA(最短路變形)

借鑑了大佬的部落格 一 題目鏈結 題目大意 有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2 n 1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colormap i j y 則這只狼可以在某乙個夜晚從顏色i變成顏色j 一晚不可...