CCF CSP題解 201512 4 送貨

2022-07-20 04:18:09 字數 1186 閱讀 4657

求字典序最小尤拉路。

似乎不能用\(fluery\)演算法(\(o(e^2)\))。\(fluery\)演算法的思路是:延申的邊盡可能不是除去已走過邊的圖的橋(割)。每走一步都要判斷是否是割,應當會超時。

採用\(hierholzer\)演算法(\(o(v+e)\)),亦稱逐步插入迴路法。思路見**。注意根據題意,每次選取未走過頂點最小的邊延申。

注意題目要求從1號節點出發。

尤拉路存在的條件:

無向圖:

存在尤拉迴路的條件:原圖連通,每個節點均為偶度節點。

存在尤拉通路的條件:存在尤拉迴路,或原圖連通,有兩個節點為奇度節點,其他節點均為偶度節點。

有向圖:

存在尤拉迴路的條件:基圖(有向邊變成無向邊)連通,每個節點的入度等於出度。

存在尤拉通路的條件:存在尤拉迴路,或基圖連通,有乙個節點入度等於出度+1,有乙個節點出度等於入度+1,其他節點入度等於出度。

#includeconst int maxn = 10000;

const int maxm = 100000;

using namespace std;

int to[maxm * 2 + 10];

int vis[maxm * 2 + 10];

int nex[maxm * 2 + 10];

int head[maxn + 10], cnt = 0;

void addedge(int a, int b)

int degree[maxn + 10];

int vis1[maxn + 10], num = 0;

void dfs(int x)

}int main()

memset(vis1, 0, sizeof(vis1));

dfs(1);

int odd = 0;

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

if (num == n && (odd == 0 || (odd == 2 && degree[1] % 2)))

if (y == -1)

else

}bool first = true;

while (!s2.empty())

else

}printf("\n");

}else

return 0;

}

ccf csp 歷年真題題解

更新中 ccf csp 2013冬季真題題解 ccf csp 2014春季真題題解 ccf csp 2014秋季真題題解 ccf csp 2014冬季真題題解 ccf csp 2015春季真題題解 ccf csp 2015秋季真題題解 ccf csp 2015冬季真題題解 ccf csp 2016春...

CCF CSP認證歷年真題解

你好啊,我是努力奔跑的追夢人 我始終相信著未來,一分耕耘一分收穫。大學四年,總想做點什麼以證明自己沒有虛度年華。其中寫csp認證題解這件事情斷斷續續地做了好幾次,今天終於完成啦。雖然目前只有前兩道題目,但是隨著自己不斷深入學習,力求全部更新!試題編號 試題名稱 參 202012 1 期末 之安全指數...

CCF CSP題解 201612 3 許可權查詢

一共有三層資訊,三層資訊的依賴關係是 使用者user 角色role 許可權authority 先儲存 authority 資訊,role 直接儲存 authority 對應序號的資訊,user 通過 role 直接儲存的是 authority 對應序號的資訊。剩下的就是字串處理了。唯一的坑點大概就是...