感覺最近做題都做傻了,這道題居然沒有任何思路,(去世摸魚中)
種植花圃
眾所周知,蔡老闆有乙個巨大的莊園。蔡老闆已經厭倦了莊園現有的花圃顏色,決定重新對莊園重新種植花圃。為了簡化這個問題,我們把蔡老闆的莊園抽象成了乙個無向連通圖 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目錄下面的...