DLX思想在搜尋中的應用HDU 1518 STICKS

來源:互聯網
上載者:User

題目大意是判斷M(4<=M<=20)的不等長木棒是否能拼接成正方形。

如果用一維數組雜湊,再往下搜的過程中必然會越來越稀疏,導致最後無效訪問過多。

DLX的精髓就在於此,對於這道題可以用雙鏈表。

不過對於這麼小的M值,貌似得不償失。-.-

 

儲存結構

typedef struct {int l , r , d;}List;<br />List a[30];

舞蹈鏈

void remove(int c)<br />{<br />a[a[c].l].r = a[c].r;<br />a[a[c].r].l = a[c].l;<br />}<br />void resume(int c)<br />{<br />a[a[c].l].r = c;<br />a[a[c].r].l = c;<br />}

主要搜尋過程

for (i = a[fr].r;i != 0;i = a[i].r){<br />if (former != a[i].d && a[i].d + sum <= tar){<br />former = a[i].d;<br />remove(i);<br />if (DFS(i , dep , sum + a[i].d)) return true;<br />resume(i);<br />}<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.