7213 垃圾炸彈

2022-08-15 06:06:11 字數 2298 閱讀 4288

題目鏈結

描述2023年俄羅斯世界盃(2018 fifa world cup)開踢啦!為了方便球迷**比賽,莫斯科街道上很多路口都放置了的直播大螢幕,但是人群散去後總會在這些路口留下一堆垃圾。為此俄羅斯**決定動用一種最新發明——「垃圾炸彈」。這種「炸彈」利用最先進的量子物理技術,**後產生的衝擊波可以完全清除波及範圍內的所有垃圾,並且不會產生任何其他不良影響。炸彈**後衝擊波是以正方形方式擴散的,炸彈威力(擴散距離)以d給出,表示可以傳播d條街道。

例如下圖是乙個d=1的「垃圾炸彈」**後的波及範圍。

假設莫斯科的布局為嚴格的1025*1025的網格狀,由於財政問題市**只買得起一枚「垃圾炸彈」,希望你幫他們找到合適的投放地點,使得一次清除的垃圾總量最多(假設垃圾數量可以用乙個非負整數表示,並且除設定大螢幕的路口以外的地點沒有垃圾)。

輸入第一行給出「炸彈」威力d(1 <= d <= 50)。第二行給出乙個陣列n(1 <= n <= 20)表示設定了大螢幕(有垃圾)的路口數目。接下來n行每行給出三個數字x, y, i, 分別代表路口的座標(x, y)以及垃圾數量i. 點座標(x, y)保證是有效的(區間在0到1024之間),同一座標只會給出一次。

輸出輸出能清理垃圾最多的投放點數目,以及能夠清除的垃圾總量。

樣例輸入

1

24 4 10

6 6 20

樣例輸出

1 30
檢視做這道題目的時候太急躁,還沒有清晰的思路就急於程式設計,後果往往是思維陷入定式,程式的bug多。可以總結出來的經驗,程式一定要在語義上面通順正確,不能模稜兩可,更不能有歧義。所以程式設計的時候,要做到能把程式的語義讀出來。

接著講這道題目的思路。這道題用列舉可以解決。查了一些資料,提供兩種列舉方案。

方案一枚舉所有點(i,j),對每乙個點,假設在該點安放炸彈,然後掃瞄所有大螢幕的座標,統計有多少個大螢幕的座標在該炸彈的波及範圍內。

#include#include

#include

#include

#include

#include

#include

#define debug(x) cout<

namespace

std;

const

int maxn=1030

;const

int inf=0x3f3f3f3f

;struct

pos pos(

int i,int j,int

w)};

vector

pv;int

main()

int pn=0,maxamnt=-1,tamnt=0

;

for(int r=0;r<=1024 ;r++)

if(tamnt>maxamnt)

else

if(tamnt==maxamnt)}}

printf(

"%d %d\n

",pn,maxamnt);

}

view code

方案二列舉所有大螢幕的點,確定包含這個大螢幕的投彈位置範圍,然後掃瞄所有大螢幕的座標,統計有多少個大螢幕的座標在該炸彈的波及範圍內。

#include#include

#include

#include

#include

#include

#include

#define debug(x) cout<

namespace

std;

const

int maxn=1030

;const

int inf=0x3f3f3f3f

;int

vis[maxn][maxn];

struct

pos pos(

int i,int j,int

w)};

vector

pv;int

main()

int pn=0,maxamnt=-1

,tamnt;

for(int i=0; i)

if(tamnt>maxamnt)

else

if(tamnt==maxamnt)}}

}printf(

"%d %d\n

",pn,maxamnt);

}

view code

注意不能縮小列舉範圍,因為雖然可以做到不影響收集垃圾的最大值,但是會影響投彈點的數目

02C 垃圾炸彈

總時間限制 1000ms 記憶體限制 65536kb 描述2018年俄羅斯世界盃 2018 fifa world cup 開踢啦!為了方便球迷 比賽,莫斯科街道上很多路口都放置了的直播大螢幕,但是人群散去後總會在這些路口留下一堆垃圾。為此俄羅斯 決定動用一種最新發明 垃圾炸彈 這種 炸彈 利用最先進...

列舉 bailian 4133 垃圾炸彈

炸彈的波及範圍為d,也就是需要在範圍內尋找最大價值,使價值最大的 x0,y0 就是最大價值投放點。因為必須要讓炸彈波及範圍包含垃圾點才可以產生價值,所以 x0,y0 一定在某一垃圾點的d範圍內。include include struct point p 21 define max 1025 int...

垃圾站如何不垃圾

垃圾站,久違了,現在做個真正意義的垃圾站,也需要高手去運作,草根站長想從垃圾站入手,那還得學會一招,就是讓垃圾站不垃圾。垃圾一 程式頁面垃圾 什麼意思?就是看著就像垃圾站,廣告滿天飛,彈窗,病毒一堆,不開不彈,彈了就彈不完,關了乙個彈乙個,如果我是站長,我也想彈,必竟現在的聯盟處於低谷,不彈吃啥,不...