最大團模板

來源:互聯網
上載者:User

最大團模板

 

void clique(int n, int* u, int mat[][MAXN], int size, int& max, int& bb, int* res, int* rr, int* c) {<br /> int i, j, vn, v[MAXN];<br /> if (n) {<br /> if (size + c[u[0]] <= max) return;<br /> for (i = 0; i < n + size - max && i < n; ++i) {<br /> for (j = i + 1, vn = 0; j < n; ++j)<br /> if (mat[u[i]][u[j]]) v[vn++] = u[j];<br /> rr[size] = u[i];<br /> clique(vn, v, mat, size + 1, max, bb, res, rr, c);<br /> if (bb) return;<br /> }<br /> }<br /> else<br /> if (size > max) {<br /> max = size;<br /> for (i = 0; i < size; ++i) res[i] = rr[i];<br /> bb = 1;<br /> }<br />}<br />int maxclique(int n, int mat[][MAXN], int *ret) {<br /> /* ret 數組為一個方案 */<br /> int max = 0, bb, c[MAXN], i, j;<br /> int vn, v[MAXN], rr[MAXN];<br /> for (c[i = n - 1] = 0; i >= 0; --i) {<br /> for (vn = 0, j = i + 1; j < n; ++j)<br /> if (mat[i][j]) v[vn++] = j;<br /> bb = 0;<br /> rr[0] = i;<br /> clique(vn, v, mat, 1, max, bb, ret, rr, c);<br /> c[i] = max;<br /> }<br /> return max; /* 最大團大小 */<br />}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.