最簡單的樹上染色問題(沒有之一)

2022-03-16 14:57:22 字數 1768 閱讀 8498

感覺最近做題都做傻了,這道題居然沒有任何思路,(去世摸魚中)

種植花圃

眾所周知,蔡老闆有乙個巨大的莊園。蔡老闆已經厭倦了莊園現有的花圃顏色,決定重新對莊園重新種植花圃。為了簡化這個問題,我們把蔡老闆的莊園抽象成了乙個無向連通圖 g

'>g

g 。他的每一塊花圃被抽象成了圖中的乙個頂點,相鄰的花圃所表示的結點之間有連邊。

蔡老闆一共採購了 m

'>m

m 種不同的顏色的花。他要用這些顏色的花為他的莊園換色,而且每乙個花圃有且只能有一種顏色的花。即圖中每個頂點只能著一種顏色。

如果有一種種植的方案使得蔡老闆的莊園中相鄰的花圃著不同顏色,則稱這個莊園是 m

'>m

m 可著色的。蔡老闆現在想找出所有不同的著色法。

第 1'>1

1 行有 3

'>3

3 個正整數 n

'>n

n , k

'>k

k 和 m

'>m

m ,表示給定的圖 g

'>g

g 有 n

'>n

n 個頂點和 k

'>k

k 條邊, m

'>m

m 種顏色。頂點編號為 1

'>1

1 , 2

'>2

2 , ⋯

'>⋯

⋯ ,n

'>n

n 。接下來的 k

'>k

k 行中,每行有 2

'>2

2 個正整數 u

'>u

u , v

'>v

v ,表示圖 g

'>g

g 的一條邊 (u,

v)'>(u,v)

(u,v) 。

輸出包含乙個整數,表示計算出的不同的著色方案數輸出。

輸入

5 8 4

1 21 3

1 42 3

2 42 5

3 44 5

輸出
48
對於所有資料 n

≤100

'>n≤100

n≤100 , k

≤2500

'>k≤2500

k≤2500 , m≤5

'>m≤5

m≤5時間限制:1 s

空間限制:128 mb

因為資料很小,所以直接模擬染色就行了,說實話這可能還不算是一道樹上染色問題(題目打臉);

dfs搞定

#include#include

#include

using

namespace

std;

intn,k,m;

int g[3000][3000

];int col[3000

];int

ans,flag;

void dfs(int

x)

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

}if(flag==1) continue

; col[x]=i;

dfs(x+1

); col[x]=0

; }

}int

main()

dfs(1);

printf("%d

",ans);

return0;

}

最簡單簽到,沒有之一

最簡單簽到,沒有之一 原題鏈結 建立乙個陣列來儲存每個字元對應的值的個數 當讀取到數時相應陣列 將出現過的陣列全部計算出大小。進行比較輸出最大值 include include include include include include using namespace std intmain f...

最簡單的移動端適配方案 rem vw 沒有之一

rem 這個單位對於前端來說並不陌生了,在移動端適配方面,我們經常會用到它,通常我們會採用類似 flexible.js 的方案,寫px,然後通過外掛程式轉化成rem,然後得出一堆小數值的rem單位.這個方案已經用了很多年,相容性很好,然而現在已經2018年了,許多相容性問題現在不再那麼頭疼了,因此我...

yii2史上最簡單式安裝教程,沒有之一

最近有小夥伴私聊我,為啥都說yii高大上,可是這尼瑪怎麼都安裝不上喃?難道真是傳說中的高大上,怎麼回事喃?寫一篇絕對堪稱史上最easy的yii2安裝教程教你入門。見原文 第二步我們切換到advanced目錄開始配置 cd advanced,如果你是windows,只需要雙擊advanced目錄下面的...