算法C++

枚举

1.化段为点

前缀和             eg:给一个数列,算x到y个数的和

#include <iostream>
#include <vector>
using namespace std;int main()
{int n;cin>>n;vector<int> a(n);vector<int> sum(n+1,0);for(int i=0;i<n;i++){scanf("%d",&a[i]);sum[i+1]=sum[i]+a[i];}int x,y;cin>>x>>y;cout<<sum[y]-sum[x-1];}

给一段数字,q次访问,每次对[x,y]区间进行加减x,最后再重新给出新的一段数字

#include <iostream>
#include <vector>
using namespace std;int main()
{int n;cin>>n;vector<int> a(n+1,0);vector<int> cha(n+1,0);for(int i=1;i<=n;i++){scanf("%d",&a[i]);cha[i-1]=a[i]-a[i-1]; }int q;cin>>q;for(int i=0;i<q;i++){int x,y,z;cin>>x>>y>>z;cha[x-1]+=z;cha[y]-=z;}for(int i=1;i<=n;i++){a[i]=a[i-1]+cha[i-1];cout<<a[i]<<endl;}
}

n棵树,q次砍树区间为[x,y],求之后树总数量

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;struct sb
{int pos,num;
};bool compare(sb x,sb y)
{if(x.pos == y.pos ){return x.num < y.num ;}return x.pos < y.pos ;
}int main()
{int n,q;cin>>n>>q;vector<sb> a(q*2);for(int i=0;i<q;i++){int x,y;cin>>x>>y;if(x>y){int t=x;x=y;y=t;}a[i].pos=x-1;a[i].num=1;a[i+q].pos=y;a[i+q].num=-1;}sort(a.begin() , a.end() ,compare);int cnt=a[0].pos;int b=0;for(int i=0;i<q*2;i++){b=b+a[i].num;if(b==1&&a[i].num==1&&i>0){cnt+=a[i].pos-a[i-1].pos;}}cnt+=n-a[2*q-1].pos;cout<<cnt+1;} 

 输入n个数,有m区间可以缓存,求需要存多少

#include<iostream>using namespace std;int main()
{int n,m,cnt=0;cin>>n>>m;int v[n],a[n];for(int i=0;i<n;i++){int x;cin>>x;if(v[x]==1){continue;}a[cnt++]=x;v[x]=1;if(cnt>m){v[a[cnt-m-1]]==0;}}cout<<cnt;
}

追逐法/双指针法/尺量法/蚯蚓法:一缩一进

#include<iostream>
#include <algorithm>
using namespace std;int main()
{int n,s;cin>>n>>s;int a[n];for(int i=0;i<n;i++){scanf("%d",&a[i]);}int len=n+1,r=0;int sum=0;for(int l=0;l<n;l++){while(r<n&&sum<s){sum+=a[r];r++;}if(sum>=s){len=min(r-l,len);}else{break;}sum-=a[l];}if(len>n){printf("0");}else{printf("%d",len);}return 0;
}

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

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

相关文章

深入探究【观察者模式】:简单音乐会售票系统案例分析

文章目录 1.观察者模式概述基本概念&#xff1a;工作原理&#xff1a; 2.案例-音乐会抢票2.1.具体实现2.1.1.被观察者接口2.1.2.被观察者实现类2.1.3.定义观察者接口2.1.3.定义观察者实现类2.1.4.测试观察者 3.总结3.1.优点和局限性3.2.思考 1.观察者模式概述 观察者模式是一种…

网站三合一缩略图片介绍展示源码

网站三合一缩略图片介绍展示源码&#xff0c;PHP源码&#xff0c;运行需要php环境支持&#xff0c;效果截图如下 蓝奏云下载&#xff1a;https://wfr.lanzout.com/ihY8y1pgim6j

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法&#xff01;现在后端开发项目中&#xff0c;为了节省时间&#xff0c;使用swagger插件&#xff0c;可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如&#xff1a;http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

部分卷积与FasterNet模型详解

简介 论文原址&#xff1a;2023CVPR&#xff1a;https://arxiv.org/pdf/2303.03667.pdf 代码仓库&#xff1a;GitHub - JierunChen/FasterNet: [CVPR 2023] Code for PConv and FasterNet 为了设计快速神经网络&#xff0c;很多工作都集中于减少浮点运算&#xff08;FLOPs&a…

【蓝桥杯】快读|min和max值的设置|小明和完美序列|​顺子日期​|星期计算|山

目录 一、输入的三种方式 1.最常见的Scanner的输入方法 2.数据多的时候常用BufferedReader快读 3.较麻烦的StreamTokenizer快读&#xff08;用的不多&#xff09; StreamTokenizer常见错误&#xff1a; 二、min和max值的设置 三、妮妮的翻转游戏 四、小明和完美序列 五…

flink学习之旅(二)

目前flink中的资源管理主要是使用的hadoop圈里的yarn&#xff0c;故此需要先搭建hadoop环境并启动yarn和hdfs&#xff0c;由于看到的教程都是集群版&#xff0c;现实是只有1台机器&#xff0c;故此都是使用这台机器安装。 1.下载对应hadoop安装包 https://dlcdn.apache.org/h…

3D图像与表格的结合MICCAI2021

先前从大脑MRI诊断阿尔茨海默病的工作表明&#xff0c;卷积神经网络&#xff08;CNNs&#xff09;可以利用图像信息进行分类。然而&#xff0c;很少有研究关注这些模型如何利用表格信息&#xff0c;如患者统计数据或实验测量数据。这里介绍了动态仿射特征图变换&#xff08;DAF…

springboot之jdbc、druid、mybatis

springboot整合jdbc spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.52.3:3306/mybatis?useUnicodetrue&characterEncodingutf-8&serverTimezoneUTCusername: rootpassword: root<?xml version"1.0" encodi…

虚拟机中window7界面太小解决办法

1.在虚拟机中的桌面的空白处右击&#xff0c;然后点击屏幕分辨率 2.根据自己电脑屏幕的大小来选择对应分辨率

【数据结构】从链表到LinkedList类

&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;个人主页&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388; &#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;数据结构专栏&#x1f388;&#x1f388;&#x1f388;&…

猫头虎分享已解决Bug || 依赖问题:DependencyNotFoundException: Module ‘xyz‘ was not found

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

如何使用 Pandas 删除 DataFrame 中的非数字类型数据?

目录 前言 识别非数字类型数据 删除非数字类型数据 1. 使用 drop() 方法删除非数字类型的列 2. 使用布尔索引删除非数字类型的行 3. 使用 applymap() 方法转换非数字类型数据 4. 使用 to_numeric() 函数转换非数字类型数据 应用实例&#xff1a;处理销售数据 总结 前言 在…