和为给定数 与 最匹配的矩阵

和为给定数

用双指针遍历,以m与arri + arrj之间的大小关系进行对i、j的修改。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
vector<long long> arr;
int main(){
    int n;
    cin >> n;
    for(int i = 0;i < n;i++){
        long long now;
        cin >> now;
        arr.push_back(now);
    }
    sort(arr.begin(),arr.end());
    long long m;
    cin >> m;
    int i = 0,j = n-1;
    while(i < j){
        if(m == arr[i] + arr[j]){cout << arr[i] << ' ' << arr[j] << endl;return 0;}
        if(m < arr[i] + arr[j]) j--;
        else i++;
    }
    // for(int i = 0;i < n;i++) cout << arr[i] << ' ';
    cout << "No" << endl;
    return 0;
}

最匹配的矩阵

遍历矩阵,进行对所有绝对值差的和的更新并记录此时的行号与列号,最后输出。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N = 105;
int A[N][N],B[N][N];
int m,n,r,s;

int k(int a,int b){
    int total = 0;
    for(int i = a;i < a + r;i++){
        for(int j = b;j < b + s;j++){
            total += max(A[i][j],B[i - a + 1][j - b + 1]) - min(A[i][j],B[i - a + 1][j - b + 1]);
        }
    }
    return total;
}

int main(){
    cin >> m >> n;
    for(int i = 1;i <= m;i++){
        for(int j = 1;j <= n;j++){
            cin >> A[i][j];
        }
    }
    cin >> r >> s;
    for(int i = 1;i <= r;i++){
        for(int j = 1;j <= s;j++){
            cin >> B[i][j];
        }
    }
    int ans = r*s*N,ans_l = 0,ans_r = 0;
    for(int line = 1;line <= m - r + 1;line++){
        for(int row = 1;row <= n - s + 1;row++){
            int val = k(line,row);
            if(val < ans){//更新
                ans = val;
                ans_l = line;
                ans_r = row;
            }
        }
    }
    for(int i = ans_l;i < ans_l + r;i++){
        for(int j = ans_r;j < ans_r + s;j++){
            cout << A[i][j] << ' ';
        }
        cout << endl;
    }
    return 0;
}
相关推荐
小师兄吃牛肉11 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
WL学习笔记11 小时前
日期类(C++)
开发语言·c++·日期类实现
H.莓飛12 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
一只小小的芙厨12 小时前
【线性DP】
学习·算法·动态规划
奋发向前wcx13 小时前
CSP-J复赛模拟赛5 王晨旭补题 2026.10.5
算法
汉克老师13 小时前
GESP2026年9月认证C++八级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程
罗湖老棍子14 小时前
C Looooops(信息学奥赛一本通- P1640)
算法·数论·同余·裴蜀定理·扩展欧几里得
郝学胜_神的一滴15 小时前
C++ Templates 06:搞懂模板代码的三种组织方式
c++·visual studio
C++ 老炮儿的技术栈15 小时前
sizeof操作符
c语言·c++·人工智能·mfc·c
沫璃染墨15 小时前
《Linux工程实践篇(一):认识设计模式——从日志系统看策略模式》
linux·c++·安全·设计模式·策略模式