數獨大師專業(數獨大師專業篇)


本站AI自動判斷提供您所需要的app下載:點我下載安裝,你懂的APP

本篇文章給大家談談數獨大師專業,以及數獨大師專業篇的知識點,希望對各位有所幫助,不要忘了收藏本站喔。

文章詳情介紹:

「洛谷日報第51期」淺談神仙算法——DLX

看完題目之后,你產生的第一個疑問一定是DLX是什么。

除非您是吊打集訓隊的dalao那還來看我這篇爛文干什么趕緊切題去吧

為了引入,我們先來看一道題。

已知目前有r個集合,請選出其中的一些集合使它們的并集為1,2,3,…,n,并且你要讓這些選出的集合的交集為空集。

這種問題有一個名字,叫做精確覆蓋問題(Exact Cover Problem)

那么我們先來想想這題該怎么做吧。

我們先用一個 r 行 n 列的矩陣來表示一個精確覆蓋問題

第 i 行第 j 個元素代表第 i 個集合是否存在元素 j

例如對于數據 n=7,r=6

它所對應一個6行7列的矩陣

我們考慮采用回溯法解決這個問題。

每一次選擇一個沒有被覆蓋的元素,也就是一列。然后選擇包含著個元素的集合進行覆蓋,也就是一行。那么在矩陣中,我們每選擇一個沒有被刪除的,接著看一下這一列中還有哪些行是1,嘗試刪除該行,回溯時恢復改行。當然,如果我們選了一行,那么就把這一行其它的1所在的列也應當刪除。恢復同理。

這種思路又被稱為算法X(Algorithm X),可惜的是刪除與恢復序列并不是一個簡單的操作,這個時候就應當召喚出數據結構來幫我們優化啦。那么這個數據結構支持什么呢?它應當支持刪除和恢復一列。所以我們就要把目光轉向著名的程序設計大師Knuth所發明的一種數據結構——舞蹈鏈(Dancing Links)

舞蹈鏈(Dancing Links)是什么?我們可以簡單的將它理解為一個雙向循環交叉鏈表(請大家牢記這個定義)

使用舞蹈鏈的算法X又被稱為DLX

(不會鏈表的同學可以自行百度哦)

把上面那句話對應到程序中是怎么樣的呢,首先處理雙向

對于每一個節點,我們都給它兩個指針L與R。分別表示這個節點的左邊節點編號和右邊節點編號。

接著處理交叉

什么叫交叉?橫縱即為交叉。橫的鏈表我們已經設計了。那么考慮下縱鏈表,再給每個節點兩個指針U與D。分別表示這個節點上方節點編號與下方節點編號。

最后處理循環

我們讓最右邊的所有節點的R指向最左邊的節點,最左邊節點的L指向最右邊的節點,上下也是如此。

那矩陣如何對應到舞蹈鏈里呢?

我們把矩陣的每一個1節點對應到舞蹈鏈的一個節點

那么問題來了,如何刪除一列呢?

我們可以在每個縱鏈表的頂端添加一個節點——虛擬節點

該節點的U指向其所在列的最后一個節點,D指向其所在列的第一個節點。L與R分別指向旁邊兩列的虛擬節點。

那么刪除一列只需要將該列虛擬節點左邊的節點的R指向該列虛擬節點右邊的虛擬節點,將該列所對虛擬節點的右邊虛擬節點的L指向該列所對虛擬節點的左邊的虛擬節點。(好好理解下)

問題是刪完了嗎?沒有,這一列里還有節點跟其他節點連著呢。

所以我們應當將該列所有節點找到,然后再把這列所有節點所在的所有行的其它節點的上下節點互指。這樣就刪完一列了。

那么恢復一列不就是逆操作嘛?

所以一個Dancing Links大概就是

這樣的。

什么?有點暈?不如上上代碼看看?不懂的地方可以看一下注釋哦。

有沒有看到一個舞者在你的鏈表上跳舞呢?主部分又被稱作dance。

你認為舞蹈鏈就這么點用處?那可就大錯特錯了!

你聽說過八皇后問題嗎?你聽說過數獨問題嗎?

沒錯DLX算法還是一種用來處理數獨的方法!

它是目前跑的最快的處理數獨的算法!

怎么用它來處理數獨呢?那么我們就要把數獨問題轉換成精確覆蓋問題了。

這也談到了一個精確覆蓋問題的建模。不過也非常簡單,每列代表一個限制條件,每行代表一種方案,若方案i滿足限制j,則矩陣mat[i][j]=1,因此矩陣的構造既要滿足所有限制條件,又不能漏掉可能的方案。

對于數獨,我們先看限制

每行中每個數只能出現一遍,ROW(x,v)表示第x行有數字v。
每列中每個數只能出現一遍,COL(x,v)表示第x列有數字v。
每宮中每個數只能出現一遍,BLOCK(i,v)表示編號為i的九宮格塊內有數字v
每格中只能填一個數,EXIST(x,y)表示第x行y列有數字。

那么應當會有324行

再看決策,定義三元組(r,c,v)代表第r行第c個填v

那么決策(r,c,v)所能滿足的限制就是

ROW(r,v)
COL(c,v)
BLOCK(zu(r,c),v)
EXIST(r,c,v)

(其中zu(r,c)代表點(r,c)所在的九宮格的編號)

列應當有729列。

那么這樣,我們不就把數獨轉換成了精確覆蓋問題了嘛?

作業:LG P1074 P1784

然后自己找題去吧(逃)

參考文獻:

[1] 劉汝佳 《算法競賽入門經典訓練指南》

[2] 圖片出處 :hihocoder


本文發布于洛谷日報,特約作者:白井黑子

原文地址:
https://www.luogu.org/blog/badger/qian-tan-shen-xian-suan-fa-dlx

他們渾身上下和sexy不搭邊,但腦子性感到爆

今天,我們來說說——

最強大腦

今年的這一季,之前我們有寫過兩期嘉賓的:劉國梁和潘粵明。

但這個節目的核心還是選手,特別是最近兩期進入到了最高能的國際賽階段,小心思就更加撲通撲通藏不住了。

上一季,中國隊惜敗,這一季明顯大家的壓力都不小。畢竟之前只是普通比腦力,現在還要背上“為國爭光”這樣級別的話▼▼▼

不過......還是出師不利了,上周的第一場pk賽,就1:2輸了給了國際隊▼▼▼

3月30日,昨晚是第二場,中國隊派出了名次不錯的楊易、陳家庚、曾新異,是“為國爭光”,還是會一首《涼涼》,講真就看本周了。

他們面對的國際隊吧,一個個都是大魔王。隨隨便便一位英國小哥,就是來自世界上最難申請的學院之一——劍橋三一學院數學系。

我還在玩泥巴的10歲,他已經立志要將治癌作為終身的目標,據說有兩年為了學數學每天只睡4小時▼▼▼

跟著升級的是題目,國際賽的題目真是難到一個宇宙爆炸。不僅難,還要拼速度,還要你搶答。

非常考驗腦力和心態。

所以中國隊這場仗,打得很虐。你會看到——

隔壁的英國小哥,一臉氣定神閑地刷刷刷把圖形拼好了▼▼▼

而我們的陳家庚選手還只拼了幾塊,心態一下子就崩了.....▼▼▼

在號稱“數獨大師”的德國小哥面前,前幾期都自信爆表的曾心異為了搶時間,一只手算數,另一只手全程按在答題器上▼▼▼

怎么港,反正昨晚看得我是心驚肉跳,冷汗直冒.....一瞬間簡直有種夢回高數考場的感覺。

但有位選手,用他的蜜汁淡定蜜汁儒雅蜜汁強氣場把我給鎮住了——楊易

雖然一上場,他就用足足!一米七的身高完美得與劍橋小哥差了一大截▼▼▼

但我們的楊易小哥哥,氣場足足啊!兩米八啊!講話可真是殺氣十足厚!▼▼▼

奶兇奶兇的!

楊易抽到的項目屬于空間推理方面。

簡單講講,就是有好幾個超級復雜的立體多邊形,對應的,他們都有超級復雜的平面展開圖。選手要在這幾張圖中,找出有微小錯誤的一張▼▼▼

巧了,正好楊易不擅長空間推理,屬于賽前訓練中三題里面就要錯一題的那種。

但你全程都無法從他淡定的眼神里看出一丟丟[怯]。

他很淡定,而且是太淡定了.....表情幾乎就沒變過。

即使自己首輪失利,英國小哥哥都得意地笑了,楊易還是▼▼▼

第二局楊易反超,你以為他會開心一下?▼▼▼

到最緊張的賽點了,你以為他會皺個眉頭?▼▼▼

后面才知道,楊易看上去一臉冷漠,其實內心戲可多了——一直在心里實時調整作戰策略。

第一輪輸了之后,他就果斷推翻了自己先前的方法,正面剛▼▼▼

到最后,英國小哥被他的淡定逼急了,沒檢查就搶先按了答題鍵,導致答題錯誤。

楊易逆襲成功。

終于,松了口氣▼▼▼

這時我們才知道,其實他并不是不緊張,他只是為了團隊的軍心,一直在忍著。

如此騷操作的逆襲,連心里素質極好的劉指導都贊不絕口,說楊易是個比賽型選手,“用自己淡定強大的氣場,活活把對手逼慌了”▼▼▼

超帥der!

講真,作為一個上了高中后理科就沒怎么及格過,在生活中看到數字都頭暈的理科學渣,朋友知道我在看《最強大腦》的反應都是這樣的:

“蛤?你為什么要看,你又不聰明。”

看第一集時我本來想躺平任嘲的,類似“雖然我不聰明,但我就不能通過看這個節目的方式來證明自己有多笨嗎”之類的。

但后來覺得我去那邊看帥(土)哥(豪)也沒什么不好承認的,就坦白說——

哎呀不是有何猷君嗎!

畢竟不是每個選手一進來都能排名第七、兩次選拔排名第一,直通30強……

同時還像何猷君一樣有顏有錢。

結果,他居然中途退賽了.........

all right,那是什么讓我在何猷君退賽后繼續追著這檔綜藝呢?是愛嗎?是責任嗎?

不!是因為

我愛上了其他男人

怎么港,這大概就是《最強大腦》這檔節目的一個特殊魅力所在吧。

正是因為大部分觀眾一題都不會做,甚至連規則看不懂,所以那些輕輕松松搞定一切的選手們,才能讓我們捶胸哭泣——

老天野啊!

為什么世界上會有這么優秀的人!

這種感覺,有點類似高中時期對學霸的迷戀。

哪怕這些選手初看外表都不太起眼,大部分丟進人堆兩秒就能消失。可一旦你被他們恐怖的智商吊打,同時發覺這個人品行上都沒什么大問題,他全身就會發散出才華的光芒。

舉個例子,還是wuli楊易歐巴。#對不起,還想給他再多一點版面#

雖然是當年通州區的理科第一,雖然是清華大學的,雖然才92年(真的是很勉強地在叫歐巴),但你要是把他放進早高峰的地鐵里…

他就是趕著上班的82年的公務員,夾著筆筆挺的公文包的那種▼▼▼

看了幾期以后,他的人格魅力慢慢突顯出來。

最明顯的是他和曾心異搭檔,pk水哥隊那場,他真的全程溫油,閃閃發光啊!

一上場,就很溫油地給隊友打氣:我們一起扛▼▼▼

第一輪曾新異失利了,他把鍋往自己身上背▼▼▼

其實他明明是對的,這樣做只是為了穩定隊友的心態▼▼▼

最后的賽點,他說得很坦誠,一言道破了所有人都不敢明說的曾新異的心魔。

“新異,你最后改變了拼的策略,可能體現我們兩人之間的信任還不夠。”

“我絕對相信你的速度,我們一起練過來,走到這步非常不容易。”

“我相信你的速度,但請你也一定要相信我,最后一次給你的圖,肯定是正確的。”

啊.......也太蘇了吧!!!!

理性有邏輯!溫油又堅定!

想把[請你一定也要相信我]這句話錄下來聽100遍!!!!

而且噢,在安慰隊友的同時,楊易還能將我連規則都聽不懂的題刷刷幾下就做出來了,并始終保證百分百的正確率▼▼▼

請問,這種沉穩又貼心的男人,有什么理由讓人不pick!!!

據說現在好多學生考數學都拜他為錦鯉了▼▼▼

除了楊易,節目中還有個“青島江直樹”徐萌,也斬獲了很多迷妹。

這種學霸的迷妹動機最不純了,腦子里想的全是基因▼▼▼

青島江直樹長這樣,一米九的大長腿,巴掌大的小臉▼▼▼

對我知道沒有智商加持的你們可能并get不到江直樹在哪里…

徐萌,當年全青島考生的噩夢

他初中就拿了全國數理奧賽雙金牌,但放棄保送,考取了新加坡政府全額獎學金,選擇去新加坡立化中學。

大學又考上了亞洲頂級的新加坡國立大學,再次包攬新加坡政府全額獎學金。

這不應該是新加坡學生的噩夢嗎?

“全青島考生噩夢”這個梗,原因他作為別人家/學校/班上的孩子,總是被高中各大老師拿來舉例,換句話說就是傳說中的學長系列。

當時和新加坡國立同時錄取他的,還有劍橋大學。后來因為“覺得性價比不高”,就放棄了,放棄了.......

更氣人的是,這位青島學霸學習好就算了,還是學校的籃球隊隊長。高中曾帶領萎靡幾年的校隊重振雄風,殺進全國高中聯賽三強。

據說當年他出場的比賽,啦啦隊陣容都是豪華配置,滿場的尖叫聲喊的都是他的名字。這不就是熱血漫的故事嗎?!

初高中長這樣▼▼▼

說實話我覺得男孩子只要個子高,然后不丑、收拾得干凈,就已經很OK了。那他成績又好又會打籃球,青島江直樹實至名歸啊。

來了《最強大腦》之后,私下里也一直在發散魅力。

隊友電腦壞了,他會修▼▼▼

隊里有位弟弟緊張到手冰涼,他就幫弟弟暖手、鼓勵他▼▼▼

還有個很萌的屬性——答題的時候喜歡嘟著嘴▼▼▼

不過這么好的人,當然都已經有老婆啦,大家散了吧........

節目里還有個特別受女生歡迎的選手,張夢南。

一個......看他的生活照就知道職業是程序員的男子.....▼▼▼

#據說因為最強大腦初試的線上測試就是他所在的小組制作的,于是也就隨手報了名,結果就隨手進了30強.......#

一個,做題的時候表情無法得到控制的男子▼▼▼

對,我沒有瞎說,一個老少通吃、全員皆愛的男子!!▼▼▼

摘一句:

夢南小哥自然是才華橫溢,面對對手不卑不亢,言行舉著謙虛有禮,談吐斯文又有見地。

張夢南的圈粉,在于他的佛系——基本上不爭也不搶。

之前團體賽的時候,他和攻擊性很強的選手曾新異分到了一組。

#是的我們又提到曾新異選手了,他真的很適合…拿來做對比#

比賽一開始,觀察圖片,曾新異很強勢,明明張夢南也在看,曾新異看著看著就把張夢南擠走了......▼▼▼

被擠到一邊的張夢南,就乖乖的在曾新異后邊默默觀察▼▼▼

連力宏都說了:阿南真的很客氣.....▼▼▼

當時節目一播出,這一幕成了大家討論的重點。

這種事嘛,你知道的,三分看事七分看人,曾新異這種滿臉寫著好勝心的本來就不圈粉。

倒是張夢南的回應,給他的人格魅力又加上了幾分▼▼▼

他提到的惡趣味,估計就是指自己有點悶騷的性格吧。

喜歡跟粉絲皮一下▼▼▼

以及在微博上分享一些很冷的笑話.....▼▼▼

關鍵是!!!

從本科起他就沒有談過戀愛!!!

現在最大的愿望是脫單▼▼▼

恩《最強大腦》之后,我并不覺得這是什么特別難的事情▼▼▼

像楊易、張夢南他們這種外表普通,但智力超群又有人格魅力的男生,我們有一個詞可以概括——

腦性男

也就是[大腦性感],指靠著智商和情商體現個人魅力,讓整個人散發性感的男人。

在他們面前,顏值這兩個字太膚淺了。

腦性男這個詞最早來源于2015年韓國的一檔綜藝《大腦性感時代-問題男人》,每期會請幾名“腦性男”聊聊天啊,做做題呀,基本集齊了韓國藝能界聰明的男藝人。

block b的樸經也去了,打的標簽是[智商156的男人]▼▼▼

雖然題目就是中國小學奧數水平,跟《最強大腦》的難易程度比起來簡直是天和地的區別(畢竟人家是高考都不用考數學的藝人,我猜的),但還是帶起了一股腦性男的流行。

這節目內地也有,質量不說,請的人都是很OK的。

有顏值的有馮德倫,沒顏值的,就是這兩年內地腦性男代表——李誕。

你看看這連縫兒都找不到的眼睛,這蒜頭鼻,這媒婆痣,這肥嘟嘟的小臉頰▼▼▼

哪個部位和性感扯得上一毛錢關系?

恩,腦子。

搞笑和吐槽只是其一,他還是《吐槽大會》的制作人,最早是記者,接著是詩人,雖然第一部作品滯銷但第二部就步入了名作家領域,最近還因為好友蔣方舟在奇葩大會上被馬東拱得吐槽了他一次又上了熱搜。

李誕在《十三邀》里和許知遠的對話,探討了許多有趣的價值觀、社會方面的問題,他有趣靈魂的基底,其實來源于才華。#可能126的智商并不是吹的吧#

腦性男有個特征,小部分女孩子可能get不到他們,但大多數直男都視他們為男神。

像我們隔壁的浪總,對誕總是癡迷到沒錢沒身高也要買同款的地步。

當然了,能get到他們的女孩子普遍也不一般(我就是在夸自己),畢竟才華是需要時間去發現的。

李誕女友▼▼▼

高曉松的前任▼▼▼

有意思的是,最近幾年國內媒體、電視劇、綜藝鼓吹的風氣,一直是“看臉就行”。

就諸如吳彥祖和高曉松選哪一個的問題,答案永遠都是——

“高曉松很有才華,但我選吳彥祖。”

而我們在鼓吹追求顏值的時候,2014年末,美國最大相親網站okcupid已經新增了一系列關于性取向的定義標簽——

sapiosexual/智性戀

adj. 被智識所吸引的,因他人的智識而性奮而癡迷的;

n.

被他人智力所吸引的人

在《神探夏洛克》第二季第一集,艾琳跟夏洛克講的一句臺詞就完美契合了sapiosexual的概念——

“Brainy is the new sexy”

其實我覺得“智商的魅力才是頂級的春藥”這個翻譯更貼切。

無獨有偶,《生活大爆炸》里也有句幾乎一摸一樣的臺詞——

“Smart is the new sexy”

#講真,腦性男的鼻祖不就是夏洛克和謝耳朵嘛!#

腦性男也是歐美近年來的大熱題材,比如前幾年票房超好的電影《社交網絡》,講的是臉書創始人扎克伯格的故事▼▼▼

#不過歐美刻畫這個形象有個刻板的共同點:語速極快又沒什么禮貌的死宅#

#安妮為,當他們已經開始鼓吹高智商的男性才有魅力的時候,與此同時,我們卻還在電視劇里追捧巨嬰一般的老男孩#

說實話大家都知道,高曉松和吳彥祖是一道自殺式單選題。現實中很少有人能帥到吳彥祖那個程度,也很少有人才華和顏值比例能拉到高曉松那么大。

我的意思是,我們大可不必把自己困在這道題里。

顏值不一定站在智力背面,而選擇更不一定會倒在顏值那一面。

這世界上除了腦性男,還有因為各種各樣的特質而性感的男人、女人,魅力是沒有固定格式的,自然也不能被框在“學霸”和“程序員”這一類標簽的門外。

Everything can be the new sexy.

好看的皮囊千篇一律,有趣的靈魂三百多斤。

腦性男的靈魂不一定討喜,但一般,都蠻輕的……