LQ训练营(C++)学习笔记_枚举算法
生活随笔
收集整理的这篇文章主要介绍了
LQ训练营(C++)学习笔记_枚举算法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
枚举算法
- 一、枚举算法
- 1、枚举的概念
- 2、枚举的题目特点
- 3、问题描述
- 4、代码实现
一、枚举算法
1、枚举的概念
枚举就是根据提出的问题,列出该问题所有可能的解,并在逐一列出的过程中,检验每个可能的解是否是问题真正的解,如果是就采纳这个解,如果不是就判断下一个。
2、枚举的题目特点
解枚举的范围是有穷的,检验条件是确定的。
3、问题描述
给定一个n*m的矩阵,求A中的一个非空子矩阵,使这个子矩阵中元素和最大,其中,A的子矩阵指在A中行和列均连续的一部分。
4、代码实现
#include<iostream> using namespace std; int main(){int n,m,ans;cin>>n>>m;ans=-1005;for(int i=0;i<n;i++){for(int j=0;j<mlj++){cin>>A[i][j];}}for(int i=0;i<n;i++){for(int j=i;j<n;j++){for(int k=0;k<m;k++){for(int l=k;l<m;l++){int tmp=0;for(int p=i;p<=j;p++){for(int q=k;q<=l;q++){tmp +=A[p][q]}}if(tmp>ans){ans=tmp;}}}}}cout<<ans<<endl; }总结
以上是生活随笔为你收集整理的LQ训练营(C++)学习笔记_枚举算法的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 最新苹果iOS设备好评排名发布:七年前的
- 下一篇: LQ训练营(C++)学习笔记_深度优先搜