hiho一下 194周(高斯消元)

2021-08-17 09:54:35 字數 1401 閱讀 5853

題目鏈結

時間限制:

10000ms

單點時限:

1000ms

記憶體限制:

256mb

在影象處理的技術中,經常會用到運算元與影象進行卷積運算,從而達到平滑影象或是查詢邊界的效果。

假設原圖為h × w的矩陣a,運算元矩陣為d × d的矩陣op,則處理後的矩陣b大小為(h-d+1) × (w-d+1)。其中:

b[i][j] = ∑(a[i-1+dx][j-1+dy]*op[dx][dy]) | (dx = 1 .. d, dy = 1 .. d), 1 ≤ i ≤ h-d+1, 1 ≤ j ≤ w-d+1

給定矩陣a和b,以及運算元矩陣的邊長d。你能求出運算元矩陣中每個元素的值嗎?

第1行:3個整數,h, w, d,分別表示原圖的高度和寬度,以及運算元矩陣的大小。5≤h,w≤60,1≤d≤5,d一定是奇數。

第2..h+1行:每行w個整數,第i+1行第j列表示a[i][j],0≤a[i][j]≤255

接下來h-d+1行:每行w-d+1個整數,表示b[i][j],b[i][j]在int範圍內,可能為負數。

輸入保證有唯一解,並且解矩陣的每個元素都是整數。

第1..d行:每行d個整數,第i行第j列表示op[i][j]。

樣例輸入

5 5 3

1 6 13 10 3

13 1 5 6 15

8 2 15 0 12

19 19 17 18 18

9 18 19 5 17

22 15 6

35 -36 51

-20 3 -32

樣例輸出
0 1 0

1 -4 1

0 1 0

思路:開始感覺無從下手,但是你把數學方程寫出來(一定要動手寫!),就會發現直接用高斯消元就能解了。

ac**:

#include#include#include#include#include#define fbs 1e-6

using namespace std;

double a[3605][30];

double c[3605];

double ans[30];

int h,w,d;

int n,m; //m行n列

void swap(int i,int j) //交換i,j行

void gauss()

}for(int j=i+1;j<=m;j++) //消除第i+1行到第m行的第i列

}//求出唯一解

for(int i=n;i>0;i--)

ans[i]=c[i]/a[i][i];

}}int main()

printf("\n");

}return 0;

}

hiho 1166 高斯消元

一道高斯消元題目 題意 給你乙個數列ai,1 i n ai是0或1,現在你可以每次翻轉乙個區間,即將0變1,1變0,且每個區間被選擇的概率為 n n 1 2,問全變成0的翻轉次數期望是多少 思路 另外,這個思路還有一些需要注意的地方,在確定這個方法是對的前提下,那麼d中的1的個數必然是偶數的,這樣的...

hiho 1196 高斯消元 二

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述在上一回中,小hi和小ho趁著便利店打折,買了一大堆零食。當他們結賬後,看到便利店門口還有其他的活動。店主 買了東西還可以參加遊戲活動哦,如果能夠完成遊戲還有額外的獎品。小hi和小ho趕緊湊了過去。店主放了一塊遊戲板在店門...

hiho一下 第二週

題目名稱 trie樹 小hi和小ho是一對好朋友,出生在資訊化社會的他們對程式設計產生了莫大的興趣,他們約定好互相幫助,在程式設計的學習道路上一同前進。這一天,他們遇到了一本詞典,於是小hi就向小ho提出了那個經典的問題 小ho,你能不能對於每乙個我給出的字串,都在這個詞典裡面找到以這個字串開頭的所...