在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 24 3
#include#include60分 輸出順序不行,wa兩個點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
)}
#include using100分 資料範圍小,可以打表namespace
std;
intmain()
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 存...