POJ八月份月賽的題目。
大意是求一個可以cover所有columns exactly一次的rows subset。
做法是枚舉所有可能性。
設現有列,則任意列的子集可以由 bit 的來表達。
可想而知,對於一個列子集,它的狀態轉移必然從子集判斷,其中。(即只有一bit相差)
這道題本來不難,唯數據數量太大,需要把300行的數據壓縮成50個64位元整數,而且只要的狀態無效則無須考慮其轉移狀態,因為導出狀態必然也是無效。
至於如何從考慮狀態?我用的是highest bit。另一種有效的方法是以gray code枚舉。
沒有留言:
張貼留言