HDU 6898 3x3 Convolution && CCPC 2020网络赛1011题

时间:2020-09-20
本文章向大家介绍HDU 6898 3x3 Convolution && CCPC 2020网络赛1011题,主要包括HDU 6898 3x3 Convolution && CCPC 2020网络赛1011题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

这道题真的是气死我了,比赛的最后差一点,赛后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;
} 

最后哭死!!!!!!!!

原文地址:https://www.cnblogs.com/Li-ningning/p/13701083.html