排列問題處理小技巧

2022-03-12 11:00:22 字數 1530 閱讀 2068

乙個例子說明問題:

反幻方我國古籍很早就記載著

2 9 4

7 5 3

6 1 8

這是乙個三階幻方。每行每列以及對角線上的數字相加都相等。

下面考慮乙個相反的問題。

可不可以用 1~9 的數字填入九宮格。

使得:每行每列每個對角線上的數字和都互不相等呢?

這應該能做到。

比如:9 1 2

8 4 3

7 5 6

你的任務是搜尋所有的三階反幻方。並統計出一共有多少種。

旋轉或映象算同一種。

比如:9 1 2

8 4 3

7 5 6

7 8 9

5 4 1

6 3 2

2 1 9

3 4 8

6 5 7

旋轉或映象算同一種等都算作同一種情況。

請提交三階反幻方一共多少種。這是乙個整數,不要填寫任何多餘內容。

一看題目就是搜尋題目,無法dfs ,排列處理,一般情況下有下面這個寫法,

#include /*

*@author:d g w

*/using

namespace

std;

typedef

long

long

ll ;

const

int maxn=1e3;

intmain()

,ans=0

;

do }}}

}}}}

while(next_permutation(a,a+9

)); cout

<8

; system(

"pause");

return0;

}

看到沒有非常可拍,實際上開乙個陣列,迴圈處理一下就解決 了,特別是在處理邏輯非常多的時候,這樣寫,特別清晰。

#include 23/*

* 4 @author:d g w

5 */

6using

namespace

std;

7 typedef long

long

ll ; 8

9const

int maxn=1e3;

1011

12int m[10

];13

intmain()

14,ans=0;17

do34}35

if(!flag)38}

39if

(flag)

42 }while(next_permutation(a,a+9

));43 cout<8

;44 system("

pause");

45return0;

46 }

python檔案處理小技巧

1.sorted函式按key值對字典排序 先來基本介紹一下sorted函式,sorted iterable,key,reverse sorted一共有iterable,key,reverse這三個引數。其中iterable表示可以迭代的物件,例如可以是 dict.items dict.keys 等,...

排列問題的重引數技巧

近日研讀了一篇發表在iclr 2018上的文章 learning latent permutations with gumbel sinkhorn networks 其介紹了一種能夠將二維張量以可微分的形式轉變為轉置矩陣的方法。使得指派 重排等不可微分操作能夠以可微分的形式結合到神經網路當中。由此,...

Python處理資料Get小技巧

匿名函式 執行主目錄 宣告 本教程僅供本人學習使用,如有人使用該技術觸犯法律與本人無關 如果有錯誤,還希望指出。共同進步 from collections import defaultdict egs list range 5 指定字典內為list 指明test為list物件 test defaul...