HDU 6898 3x3 Convolution && CCPC 2020網路賽1011題
阿新 • • 發佈:2020-09-20
這道題真的是氣死我了,比賽的最後差一點,賽後A題,
解題思路: 這個按著題意推矩陣,矩陣的資料都是int型的,輸入的是K' 的矩陣,推出K 矩陣,把K矩陣和A矩陣代入上面給出的公式,推C矩陣
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { int a ; ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); cin>>a; while(a--){int pos; cin>>pos; int k_[4][4]; int k[4][4]; int n[55][55]; int C[55][55] = {0}; int sum = 0; for(int i = 1 ; i <= pos; i++) for(int j = 1; j <= pos ; j++) cin>>n[i][j]; for(int i = 1 ; i <= 3; i++) for(int j = 1; j <= 3 ; j++){ cin>>k_[i][j]; sum+=k_[i][j]; } for(int i = 1 ; i <= 3; i++) for(int j = 1; j <= 3 ; j++){ k[i][j] = k_[i][j] / (sum*1.0); } for(int x = 1; x <= pos ; x++){ for(int y = 1; y <= pos ; y++){ for(int i = 1; i <= min(pos-x+1,3);i++){ for(int j = 1; j <= min(pos-y+1,3) ;j++){ C[x][y] += (n[x+i-1][y+j-1] * k[i][j]);//題目公式 } } } } for(int i =1 ; i <= pos ; i++){ for(int j = 1 ; j <= pos ; j++){ if(j==1) cout<<(int)C[i][j]; else cout<<" "<<(int)C[i][j]; } cout<<endl; } } return 0; }
最後哭死!!!!!!!!