vijos1441 打鼴鼠 (動態規劃)

2021-07-07 08:50:01 字數 1140 閱讀 5318

p1441打鼴鼠

accepted

標籤:動態規劃

cscii

鼴鼠是一種很喜歡挖洞的動物,但每過一定的時間,它還是喜歡把頭探出到地面上來透透氣的。

根據這個特點阿q編寫了乙個打鼴鼠的遊戲:在乙個n*n的網格中,在某些時刻鼴鼠會在某乙個網格探出頭來透透氣。你可以控制乙個機械人來打鼴鼠,如果i時刻鼴鼠在某個網格中出現,而機械人也處於同一網格的話,那麼這個鼴鼠就會被機械人打死。而機械人每一時刻只能夠移動一格或停留在原地不動。機械人的移動是指從當前所處的網格移向相鄰的網格,即從座標為(i,j)的網格移向(i-1, j),(i+1, j),(i,j-1),(i,j+1)四個網格,機械人不能走出整個n*n的網格。遊戲開始時,你可以自由選定機械人的初始位置。

現在你知道在一段時間內,鼴鼠出現的時間和地點,希望你編寫乙個程式使機械人在這一段時間內打死盡可能多的鼴鼠。

檔案第一行為n(n<=1000), m(m<=10000),其中m表示在這一段時間內出現的鼴鼠的個數,接下來的m行每行有三個資料time,x,y表示有乙隻鼴鼠在遊戲開始後time個時刻,在第x行第y個網格裡出現了乙隻鼴鼠。time按遞增的順序給出。注意同一時刻可能出現多隻鼴鼠,但同一時刻同一地點只可能出現多隻鼴鼠。

輸出檔案中僅包含乙個正整數,表示***鼴鼠的最大數目。

2 2

1 1 1

2 2 2

1

各個測試點1s

解析:f[i]表示在第 i 個時刻的最大值,則:

for(j=i;j>=1;j--)

if(t[i]-t[j]>=abs(x[i]-x[j])+abs(y[i]-y[j]))

f[i]=max(f[i],f[j]+1);

**:

#include#include#includeusing namespace std;

const int maxn=1e4;

int t[maxn+10],x[maxn+10],y[maxn+10];

int f[maxn+10];

int main()

1441 士兵的數字遊戲

1441 士兵的數字遊戲 基準時間限制 6 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 兩個士兵正在玩乙個遊戲,遊戲開始的時候,第乙個士兵為第二個士兵選乙個正整數n。然後第二個士兵要玩盡可能多的輪數。每一輪要選擇乙個正整數x 1,且n要是x的倍數,然後用n x去代替n。當n變成...

洛谷 1441 砝碼稱重

題目描述 現有n個砝碼,重量分別為a1,a2,a3,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量 不包括0 請注意,砝碼只能放在其中一邊。輸入格式 輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔 第2行有n個正整數a1,a2,a3,an,表示每個砝碼的重量。輸出格式 輸出檔...

砝碼稱重 洛谷 1441

題目 現有n個砝碼,重量分別為a1,a2,a3,an,在去掉m個砝碼後,問最多能稱量出多少不同的重量 不包括0 輸入格式 輸入檔案weight.in的第1行為有兩個整數n和m,用空格分隔 第2行有n個正整數a1,a2,a3,an,表示每個砝碼的重量。輸出格式 輸出檔案weight.out僅包括1個整...