18.贪心算法

排序贪心

区间贪心

删数贪心

统计二进制下有多少1

int Getbit_1(int n){int cnt=0;while(n){n=n&(n-1);cnt++;}return cnt;
}

暴力加一维前缀和优化

#include <iostream>
#include <climits>
using namespace std;
#define int long long
const int N=2e5+10;
int a[N],sum[N];signed main(){int n,mx=INT_MIN;cin>>n;//先求前缀和for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}for(int l=1;l<=n;l++){for(int r=l;r<=n;r++){// l r 就是区间-->前缀和int sum_l_r=sum[r]-sum[l-1];mx=max(mx,sum_l_r);}}cout<<mx<<endl;return 0;
}

贪心 sum<零 清零

#include <iostream>
#include <climits>
using namespace std;
#define int long long
const int N=2e5+10;signed main(){int n,mx=INT_MIN,sum=0;cin>>n;for(int i=1;i<=n;i++){int x;cin>>x;if(sum<0) sum=0;sum+=x;mx=max(mx,sum);}cout<<mx<<endl;return 0;
}
#include <iostream>
#include <climits>
using namespace std;
#define int long long
const int N=1e2+10;
int a[N][N];
signed main(){int n;cin>>n;//固定左上角 枚举右下脚for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>a[i][j];}}//枚举int mx=INT_MIN;for(int i1=1;i1<=n;i1++){for(int j1=1;j1<=n;j1++){for(int i2=i1;i2<=n;i2++){for(int j2=j1;j2<=n;j2++){//i1 j1 i2 j2int sum=0;for(int i=i1;i<=i2;i++){for(int j=j1;j<=j2;j++){sum+=a[i][j];}}mx=max(mx,sum);}}}}cout<<mx<<endl;return 0;
}

一维前缀和 求二位区间和

#include <iostream>
#include <climits>
using namespace std;
#define int long long
const int N=1e2+10;
int a[N][N],presum[N][N];
signed main(){int n;cin>>n;//固定左上角 枚举右下脚for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>a[i][j];presum[i][j]=presum[i][j-1]+a[i][j];}}/** 1 2 3 4 5* 6 7 8 9 1* 2 3 2 4 1* 3 3 2 1 1* *///枚举int mx=INT_MIN;for(int i1=1;i1<=n;i1++){for(int j1=1;j1<=n;j1++){for(int i2=i1;i2<=n;i2++){for(int j2=j1;j2<=n;j2++){int sum=0;for(int i=i1;i<=i2;i++){sum+=presum[i][j2]-presum[i][j1-1];}mx=max(mx,sum);}}}}cout<<mx<<endl;return 0;
}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二维前缀和求区间和

#include <iostream>
#include <climits>
using namespace std;
#define int long long
const int N=1e2+10;
int a[N][N],presum[N][N];
/** 遇到一维数组求最大连续子数组和 以及二维数组求最大连续子数字和问题* 都可以通过暴力枚举区间来找到最大值* 一、一维数组* 1.对于一维数组,暴力枚举区间需要两层循环,l r* 2.求l r 区间内的和可以预先输入的时候存储区间和,然后通过区间和求前缀和* 二、二位数组* 1.对于二位数组来说,暴力枚举区间需要四层循环,就是左上角左边(i1,j1),右下角坐标(i2,j2)* 2.对(i1,j1) (i2,j2)求区间和比较复杂,还是输入的时候前缀区间和,* 3.二维区间和:sum=presum[i2][j2]-presum[i1-1][j2]-presum[i2][j1-1]+presum[i1-1][j1-1]* 4.二维求前缀和的时候,需要画图,presum[i][j]=presum[i-1][j]+presum[i][j-1]-presum[i-1][j-1]+a[i][j];* */
signed main(){int n;cin>>n;//固定左上角 枚举右下脚for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){cin>>a[i][j];presum[i][j]=presum[i-1][j]+presum[i][j-1]-presum[i-1][j-1]+a[i][j];}}/** 1 2 3 4 5* 6 7 8 9 1* 2 3 2 4 1* 3 3 2 1 1* *///枚举int mx=INT_MIN;for(int i1=1;i1<=n;i1++){for(int j1=1;j1<=n;j1++){for(int i2=i1;i2<=n;i2++){for(int j2=j1;j2<=n;j2++){int sum=presum[i2][j2]-presum[i1-1][j2]-presum[i2][j1-1]+presum[i1-1][j1-1];mx=max(mx,sum);}}}}cout<<mx<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485013.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 场景(QGraphicsScene)自绘可自由变换与移动的图元(QGraphicsObject)

文章目录 效果图矩形四个角矩形 效果图 在scene上绘制一个图元QGraphicsObject的矩形&#xff0c;可以自由拖动且拖动四个角可以自由变换矩形需要如下处理。 矩形四个角 四个角的点需要独立处理继承于QGraphicsObject,当我们点击时拖动时发送信号给矩形&#xff0c;进行矩形变…

猫头虎分享已解决Bug || Web服务故障:WebServiceUnavailable, HTTPServerError

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

记录解决uniapp使用uview-plus在vue3+vite+ts项目中打包后样式不能显示问题

一、背景 从 vue2uview1 升级到 vue3vitetsuview-plus ,uview组件样式打包后不显示&#xff0c;升级前uview 组件是可以正常显示&#xff0c;升级后本地运行是可以正常显示&#xff0c;但是打包发布成H5后uview的组件无法正常显示&#xff0c;其他uniapp自己的组件可以正常显示…

PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序

PacketSender-用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序 PacketSender是一款开源的用于发送/接收 TCP、UDP、SSL、HTTP 的网络实用程序&#xff0c;作者为dannagle。 其官网地址为&#xff1a;https://packetsender.com/&#xff0c;Github源代码地址&#xff1a;htt…

Kubernetes kubeadm 证书到期,更新证书

1.环境说明 lient Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.6", GitCommit:"fbf646b339dc52336b55d8ec85c181981b86331a", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:30Z", G…

糖尿病性视网膜病变(DR)的自动化检测和分期

糖尿病性视网膜病变&#xff08;DR&#xff09;的自动化检测和分期 提出背景DR的阶段及其特征 历年解法计算机视觉方法多分类方法 新的解法深度学习方法迁移学习大模型多模型集成全流程分析 总结特征1&#xff1a;图像分割特征2&#xff1a;疾病分级特征3&#xff1a;治疗建议生…

phaseDNN文章解读

文章DOI: https://doi.org/10.48550/arXiv.1905.01389 作者是 Southern Methodist University 的Wei Cai 教授 A Parallel Phase Shift Deep Neural Network for Adaptive Wideband Learning 一种并行移相深度神经网络来自适应学习宽带频率信号 20190514 核心思想&#xff1a;…

搞明白Eclipse的Java Build Path很重要

为什么说搞懂Eclipse的Java Build Path很重要呢&#xff1f;因为搞懂了它才知道eclipse如何放置源代码和输出文件的&#xff0c;也就是搞懂从哪里来到哪里去的问题。 Build Path是指定Java工程所包含的资源属性集合。 在一个成熟的Java工程中&#xff0c;不仅仅有自己编写的源…

数字之美:探索人工智能绘画的奇妙世界

目录 引言AI绘画的定义与发展历程定义与发展历程AI绘画产品有哪些? AI绘画的应用领域设计与创意产业影视与游戏制作数字艺术与展览 AI绘画的基本原理与技术深度学习与神经网络生成对抗网络&#xff08;GAN&#xff09;风格迁移算法 AI绘画效果展示一只带着墨镜的小猫在高楼林立…

openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制

文章目录 openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制226.1 适用场景226.2 非适用场景 openGauss学习笔记-226 openGauss性能调优-系统调优-配置LLVM-LLVM适用场景与限制 226.1 适用场景 支持LLVM的表达式 查询语句中存在以下的表达式支持…

☀️将大华摄像头画面接入Unity 【2】配置Unity接监控画面

一、前言 上一篇咱们将大华摄像头接入到电脑上了&#xff0c;接下来准备接入到unity画面。 接入到监控就涉及到各种视频流的格式rtsp、rtmp、m3u8。 Unity里有一些播放视频流的插件&#xff0c;主要的就是AVPro Video 和 UMP等&#xff0c;这次我用的是UMP 最好使用2.0.3版本…

HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例

HAL STM32 HW I2C DMA SSD1306/SH1106驱动示例 &#x1f4cd;硬件I2C DMA驱动参考&#xff1a;https://blog.csdn.net/weixin_45065888/article/details/118225993 &#x1f4cc;github上的相关项目&#xff1a;https://github.com/taburyak/STM32_OLED_SSD1306_HAL_DMA &am…