省賽訓練F 廣搜

2021-06-06 13:59:12 字數 586 閱讀 2680

問題的模型是:在允許消耗一定量生命換取時間的前提下,從起始點到終點所需的最短時間。

利用廣度優先搜尋,陣列ti[i][j][k]:表示失去k點血量時,到達(i,j)的最快時間。

由於開始有100點血,血量小於等於0時死亡,實際可用血量是99。

使用優先佇列,佇列節點有三個屬性:x,y,k,(x,y)為該節點表示的位置,k為失去的血量數.

#include #include #include #include using namespace std;

#define maxn 99999999

int n,m,sx,sy,ex,ey,t;

int ti[110][110][110];

int dir[4][2]=,,,};

struct node

node(int _x,int _y,int _hp):x(_x),y(_y),hp(_hp) {}

};queueq;

bool inmap( int x,int y )

void input()

else

}return 0;

}

省賽訓練N 2 F

自己想的操作是用計數器記錄勝者,勝利者 1,然後遍歷,但感覺太麻煩了自己都懶得寫,看了大佬 原來直接開陣列,挨個存就完事了。太菜了,暴力都不如別人 開乙個比所需陣列大一倍的陣列,把勝者的分數存到後面,方便進行下輪比賽。include include include include include i...

2014省賽 F中位數

f.中位數 time limit 1000 ms memory limit 65536 kb total submissions 37 accepted 20 description 計算有限 個數的資料 的中位數的方法是 把所有的同類 資料按照大小的順序 排列。如果資料的個數是 奇數,則中間那個 ...

省賽訓練之基礎(一)

今天老師講了幾道比較基礎的題目 1 北大平台的1552 doubles 思路 找到資料中剛好為其中1倍的數字。前乙個與後面的依次比對。做法 includeint main count 0 for i 0 i 2 北大平台上的2739 sum of consecutive prime numbers ...