非遞迴的n頂點m顏色點著色問題

2021-07-29 19:53:32 字數 908 閱讀 9975

這應該是普及組都應該會的玩意吧。。。

做組合數學的數學題時,做到了乙個求6頂點4顏色點著色種數的題,恕我直言,我不會用漂亮的方法來做,然而我這個不氪金的網遊一樣的腦袋就想著去寫個程式試試,結果發現我居然連深搜都無法寫出正確結果。再加上昨天cf史上新低,居然一題都沒過嚇壞了我們學校的學長。是時候反思一下了,省選臨近,雖然我是湊數的但是也不能掉以輕心啊。

//這是固定的6頂點4顏色方法(因為數學卷子上資料是這個)

//當然可以改為普通的n頂點m顏色方法,scanf乙個n,m就完了

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

const

int maxn=100;

int n=6;

int m=4;

int ans=0;

vector

g[maxn];

int color[maxn];

void addedge(int from,int to)

bool check(int v)

}return

true;

}void colored()

else

}if(k==n && color[k]<=m)

else

if(kelse

}}int main()

colored();

printf("%d\n",ans);

return

0;}

那麼繼續吧 我這個智障的oi歷程

N皇后的遞迴和非遞迴實現

著名的八皇后問題大家應該都知道,不過以防萬一這裡還是再說一下 八皇后問題是乙個以西洋棋為背景的問題其內容為求解如何能夠在 8 8 的西洋棋棋盤上放置八個皇后,使得任何乙個皇后都無法直接吃掉其他的皇后?即任意兩個皇后都不能處於同一條橫行 縱行或斜線上。而n皇后顧名思義就是同樣的規則擴充套件到n個皇后。...

m個珠子共n種顏色,找出包含n種顏色的最短連續片段

原題目 題目分析 一 暴力搜尋 1 最簡單的方法 暴力搜尋,逐個掃瞄第i個位置開始包含n中顏色最短區間,時間複雜度為o m 2 2 從i開始掃瞄,每出現一種新的顏色,計數 1 當計數 n時候,結束,此時即為i開始的最短區間 二 1 掃瞄一遍陣列m,計算出每種顏色在陣列m中下一次出現的位置,存在資料n...

N皇后問題的遞迴與非遞迴解法

n皇后問題 n皇后問題是將n個皇后放置在n n的棋盤上,皇后彼此之間不能相互攻擊。給定乙個整數n,返回所有不同的n皇后問題的解決方案。每個解決方案包含乙個明確的n皇后放置布局,其中 q 和 分別表示乙個女王和乙個空位置。樣例對於4皇后問題存在兩種解決的方案 q.solution 1 q q.q.q....