codevs 搜尋題彙總(鑽石 大師級)

2022-05-08 09:18:20 字數 2960 閱讀 1087

2023年noip全國聯賽提高組

時間限制: 1 s

空間限制: 128000 kb

題目等級 : 鑽石 diamond

設有n*n的方格圖(n<=10,我們將其中的某些方格中填入正整數,而其他的方格中則放入數字0。如下圖所示(見樣例):

某人從圖的左上角的a 點出發,可以向下行走,也可以向右走,直到到達右下角的b點。在走過的路上,他可以取走方格中的數(取走後的方格中將變為數字0)。

此人從a點到b 點共走兩次,試找出2條這樣的路徑,使得取得的數之和為最大。

輸入描述 input description

輸入的第一行為乙個整數n(表示n*n的方格圖),接下來的每行有三個整數,前兩個表示位置,第三個數為該位置上所放的數。一行單獨的0表示輸入結束。

輸出描述 output description

只需輸出乙個整數,表示2條路徑上取得的最大的和。

樣例輸入 sample input

2  3  13

2  6   6

3  5   7

4  4  14

5  2  21

5  6   4

6 3  15

7 2  14

0 0  0

樣例輸出 sample output

資料範圍及提示 data size & hint

如描述

#include#include

using

namespace

std;

int a[11][11

];int

n,x,y,z;

int f[11][11][11][11

]; int

main()

while(x!=0&&y!=0&&z!=0

);

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

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

for(int k=1;k<=n;k++)

for(int l=1;l<=n;l++)

printf("%d

",f[n][n][n][n]);

return0;

}

view code

時間限制: 1 s

空間限制: 128000 kb

題目等級 : 鑽石 diamond

yours和zero在研究a*啟發式演算法.拿到一道經典的a*問題,但是他們不會做,請你幫他們.

問題描述

在3×3的棋盤上,擺有八個棋子,每個棋子上標有1至8的某一數字。棋盤中留有乙個空格,空格用0來表示。空格周圍的棋子可以移到空格中。要求解的問題是:給出一種初始布局(初始狀態)和目標布局(為了使題目簡單,設目標狀態為123804765),找到一種最少步驟的移動方法,實現從初始布局到目標布局的轉變。

輸入描述 input description

輸入初試狀態,一行九個數字,空格用0表示

輸出描述 output description

只有一行,該行只有乙個數字,表示從初始狀態到目標狀態需要的最少移動次數(測試資料中無特殊無法到達目標狀態資料)

樣例輸入 sample input

樣例輸出 sample output

資料範圍及提示 data size & hint

詳見試題

#include #include 

#include

using

namespace

std;

int c[9]=;//

1,2,3~8的階乘

int dict2[4]=,

dict1[

4]=;

intwww;

int step[400000

];int

steps;

char q[400000][9

];char mb[9]=;

bool used[400000

],sign;

int hash(char str[9

])

return sum; //

總和 }

void

bfs()

if (!sign)

for (i=0;i<9;i++)

if (q[h][i]==0

)

for (i=0;i<4;i++)}}

h++;

}steps=-1

;

return;}

intmain()

view code

時間限制: 2 s

空間限制: 8000 kb

題目等級 : 鑽石 diamond

在乙個n*m的方陣中

尋找somebody的位置

有可能k不存在輸出「biantai」

輸入描述 input description

共n+1行

第一行 n m k

後n行為方陣

輸出描述 output description

輸出k的行和列

樣例輸入 sample input

2 4 9

1 1 4 5

5 9 4 0

樣例輸出 sample output

2 2資料範圍及提示 data size & hint

n<10 m<10

有可能k不存在輸出「biantai」

#include#include

#include

using

namespace

std;

intn,m,k;

int a[11][11

];int

x;int

main()

}printf(

"biantai\n");

return0;

}

view code

PTA 鑽石真題卷 均是素數

1.區間給定,尋找素數滿足條件 2.先找區間內素數 3.再對符合要求的素數進行查詢掃一遍就好 include int m,n,p,q,r 其實定義全域性變數的習慣不太好,不利於以後程式設計發展,但是定義區域性變數老是忘記初始化賦值,不過對於一般的做題題目而言可以直接定義全域性變數 個人觀點。int ...

python中的多繼承,鑽石繼承,搜尋過程

python中的多繼承,鑽石繼承 查詢屬性的過程 簡單版本 詳細過程可以參考python參考手冊 舊式類中,從左到右,從b a 然後繼續從c a 新式類中,從左到右,先b 然後c c 後面沒有其他類了,繼續從b的父類開始,等b父類搜尋完,搜尋c的父類 其中的原因簡單解釋下 低層的類較高層的類相比,或...

演算法題彙總

no1 打靶問題,打十次打靶,總分數為90分的情況有哪些?no2 階乘末尾0的個數?no1 打靶問題,打十次打靶,總分數為90分的情況有哪些?個人感覺比較像一類排列組合遞迴回溯的解法。package com.lzg.flume.intercepter.suanfati public class da...