洛谷P1549 棋盤問題(2)

2022-04-02 01:07:56 字數 1490 閱讀 4329

在n*n的棋盤上(1≤n≤10),填入1,2,…,n*n共n*n個數,使得任意兩個相鄰的數之和為素數。

例如:當n=2時,有:

其相鄰數的和為素數的有:

1+2,1+4,4+3,2+3

當n=4時,一種可以填寫的方案如下:

在這裡我們約定:左上角的格仔裡必須填數字1。

輸入格式:

乙個數n

輸出格式:

如有多種解,則輸出第一行、第一列之和為最小的排列方案;若無解,則輸出「no」。

輸入樣例#1:

1
輸出樣例#1:

no
輸入樣例#2:

2
輸出樣例#2:

1 2

4 3

#include#include

using

namespace

std;

int n,map[11][11],p[210

],cnt;

int ok[110][210

];bool th[210],vis[110

],flag;

void dfs(int x,int

y)cout

if(flag)return

;

intpre1,pre2;

if(x==1)pre1=pre2=map[x][y-1

];

else

if(y==1)pre1=pre2=map[x-1

][y];

else pre1=map[x-1][y],pre2=map[x][y-1

];

int nxt1=x,nxt2=y+1

;

if(nxt2>n)nxt2=1,nxt1=x+1

;

for(int i=1;i<=ok[pre1][0];i++)

}}int

main()

th[1]=1

;

for(int i=2;i<=200;i++)

}for(int i=1;i<=n*n;i++)

for(int j=1;j<=cnt;j++)

vis[

1]=1

; map[

1][1]=1

; dfs(

1,2);

if(flag==0

)}

60分 輸出順序不行,wa兩個點

#include using

namespace

std;

intmain()

100分 資料範圍小,可以打表

P1548 棋盤問題

p1548 棋盤問題 設有乙個n times mn m方格的棋盤 1 n 100,1 m 100 求出該棋盤中包含有多少個正方形 多少個長方形 不包括正方形 例如 當 n 2,m 3時 正方形的個數有8個 即邊長為1的正方形有6個 邊長為2的正方形有2個。長方形的個數有10個 即2 1的長方形有4個...

P1548 棋盤問題

非常水,套公式 includeusing namespace std intn,m intans1 intans2 inta intb intmain a n 1 n 2 b m 1 m 2 cout cout return0 ac一下內容與本題無關 真的無關緊要 晚上看了這道題,很有感觸。一道水題...

洛谷 P3956 棋盤

js省裡冬令營夏令營講深搜都講到了 今天上午測試的題,15分,因為剪枝沒剪乾淨,少了個等於號,於是本來能拿到的分也沒拿到,唉 主要思想dfs 剪枝 include using namespace std int m,n 依照題目 int a 107 107 存顏色 int vis 107 107 存...