藍橋杯 ADV 283 演算法提高 矩形靶

2021-10-02 14:15:28 字數 1111 閱讀 4870

演算法提高 矩形靶

時間限制:1.0s   記憶體限制:256.0mb

問題描述

在矩形的世界裡任何事物都是矩形的,矩形的槍靶,甚至矩形的子彈。現在給你一張n*m的槍靶,同時告訴你子彈的大小為(2l+1)*(2r+1)。讀入一張01的圖每個點的01狀態分別表示這個點是否被子彈的中心擊中(1表示被擊中,0則沒有)一旦乙個點被子彈的中心擊中,那麼以這個點為中心 (2l+1)*(2r+1) 範圍內靶子上的點都會被擊毀。要求輸出最終靶子的狀態。

輸入格式

第一行為n,m,l,r表示靶子的大小,以及子彈的大小。

下面讀入乙個n*m的01矩陣表示每個點是否被子彈的中心擊中

輸出格式

n*m的01矩陣表示靶子上的每個點是否被破壞掉

樣例輸入

4 4 1 1

1000

0000

0000

0010

樣例輸出

1100

1100

0111

0111

樣例輸入

7 4 1 1

1000

0000

0010

0000

0000

0000

0100

樣例輸出

1100

1111

0111

0111

0000

1110

1110

資料規模和約定

n,m<=600,l,r<=5

#include #include int min(int a, int b)

int max(int a, int b)

int main()

, state[605][605] = ;

scanf("%d %d %d %d", &n, &m, &l, &r);

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

for (int i = 0; i < n; ++i)}}

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

printf("%s\n", state[i]);

return 0;

}

藍橋杯 ADV 131演算法提高 選擇排序

問題描述 排序,顧名思義,是將若干個元素按其大小關係排出乙個順序。形式化描述如下 有n個元素a 1 a 2 a n 從小到大排序就是將它們排成乙個新順序a i 1 i k 為這個新順序。選擇排序的思想極其簡單,每一步都把乙個最小元素放到前面,如果有多個相等的最小元素,選擇排位較考前的放到當前頭部。還...

藍橋杯 ADV 20 演算法提高 交換Easy

問題描述 給定n個整數組成的序列,每次交換當前第x個與第y個整數,要求輸出最終的序列。輸入格式 第一行為序列的大小n 1 n 1000 和操作個數m 1 m 1000 第二行包含n個數字,表示初始序列。接下來m行,每行兩個整數x,y 1 x,y n 表示要交換的兩個整數。在一次交換中,如果x和y相等...

藍橋杯 ADV 208 演算法提高 矩陣相乘

問題描述 小明最近在為線性代數而頭疼,線性代數確實很抽象 也很無聊 可惜他的老師正在講這矩陣乘法這一段內容。當然,小明上課打瞌睡也沒問題,但線性代數的習題可是很可怕的。小明希望你來幫他完成這個任務。現在給你乙個ai行aj列的矩陣和乙個bi行bj列的矩陣,要你求出他們相乘的積 當然也是矩陣 輸入資料保...