当前位置: 首页 > news >正文

福建设计招标网站关键词优化百家号

福建设计招标网站,关键词优化百家号,国外高清人像图片素材网站,门户网站建设目录 前言 一、并查集 1、并查集的合并(带路径压缩) 2、询问是否为同一个集合 3、例题 二、前缀和 1 、前缀和是什么 2、经典题目 三- 字符串处理 1、字符串的插入 2、字符串转化为int类型 3、字符反转 前言 并查集合前缀,字符串…

目录

 前言

一、并查集

1、并查集的合并(带路径压缩)

2、询问是否为同一个集合

3、例题

二、前缀和

1 、前缀和是什么

2、经典题目

三- 字符串处理

1、字符串的插入

2、字符串转化为int类型

3、字符反转


 前言

并查集合前缀,字符串和在往年考试出现频率不算太高,但也会涉及到,考察的时候往往结合一些其他知识带点一起考察,当然也不排除今年蓝桥杯会考察到,学一下也是未自己增加一份保险


一、并查集

并查集,类似于树的组合,俩个数如何以最短的时间复杂度,实现合并,就是把一个树的根连到另一个树上去,时间复杂度近乎为1;

维护n个元素,刚开始每个元素自己一个集合,支持两个操作。

  • 合并两个元素所在的集合
  • 询问两个元素是否在相同的集合内

其他支持:

  • 维护每个元素和同一个集合内的其他元素的关系
  • 每个元素所在的集合的大小

并查集这个算法,他有自己的模板操作

1、并查集的合并(带路径压缩)

int find (int x)
{if(p[x]  != x )   p[x] = find(p[x]);   //父节点等于祖宗节点return p[x];
}

p[find(a)] = find(b);  //使a的祖宗节点的父节点等于b的父节点实现转接

2、询问是否为同一个集合

if(find(a) == find(b)) 

3、例题

代码

#include <bits/stdc++.h>using namespace std;const int N = 100010;
int n,m;
int p[N];
int find (int x)
{if(p[x]  != x )   p[x] = find(p[x]);   //父节点等于祖宗节点return p[x];
}
int main()
{cin>>n>>m;for(int i = 1;i <= n; i ++)  p[i] = i;    //根据题目要求使得每个数各自在一个集合while(m--){char op[2];int a,b; scanf("%s%d%d",op,&a,&b);  //输入字符串,因为scanf常常读入一些空格之类,使用字符串类型比较保险if(op[0] == 'M')   p[find(a)] = find(b);  //使a的祖宗节点的父节点等于b的父节点实现转接else {   if(find(a) == find(b)) puts("Yes");else puts("No");}}return 0;
}

 2020蓝桥杯b组第四题考到DFS和并查集的内容,感兴趣可以尝试做一下真题


二、前缀和

1 、前缀和是什么

一维数组的前缀和很简单可以通过下面的例题来理解

2、经典题目

输入一个长度为 n的整数序列。

接下来再输入 m个询问,每个询问输入一对 l,r。

对于每个询问,输出原序列中从第 l个数到第 r 个数的和。

输入格式

第一行包含两个整数 n 和 m。

第二行包含 n 个整数,表示整数数列。

接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。

输出格式

共 m 行,每行输出一个询问的结果。

输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

输出样例:

3
6
10

代码

#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
int main()
{int n,m;int a[N],s[N] ;cin>>n>>m;for(int i =1;i <= n;i++) cin>>a[i];for(int i =1;i <= n;i++) s[i]= s[i-1] +a[i];while(m--){int l,r;cin>>l>>r;cout<<s[r] - s[l-1]<<endl;}
} 

三- 字符串处理

字符串题目考察频率也还行,学会简单的几个字符串STL的函数,可以帮助我们解决复杂的问题,

下面介绍几个
 

1、字符串的插入

string  s = "abcdef"

s1 =  s.substr (2)  //从下标为2的字符开始截取到结尾,s1 = "cdef";

s2 =  s.substr(2,3)  //从下标为2的2字符截取长度为3的字符串 s2 = "cde";

      

2、字符串转化为int类型

string 类型转化为int 型  stol()

string 类型转化为long long型 stoll()

代码

 string s = "12345";int t = stol(s);printf("%d\n",t);long long m = stoll(s);printf("%lld",m);

3、字符反转

输入一个字符串,想使其反转过来

    string s;
    reverse(s.begin(),s.end());

http://www.mmbaike.com/news/30056.html

相关文章:

  • 域名备案期间怎么做网站怎么找精准客户资源
  • 长春网页制作建站海南网站设计
  • 商标转让费用多少百度优化公司
  • 搭建一个网站要多少营销网站类型
  • wordpress联系页面青岛seo百科
  • 网站开发属于软件开发行业吗seo 页面链接优化
  • 电子商务网站建设概述深圳全网营销型网站
  • 深圳做网站报价网络营销软件大全
  • 婚礼顾问网站介绍模版网络关键词优化软件
  • 杭州地区网站公安备案最新app推广项目平台
  • 360网站备案查询百度怎么优化网站排名
  • 松山湖做网站百度左侧排名
  • 美空间网站网络推广外包加手机蛙软件
  • 青海省建设厅网站公示公告最新新闻热点事件
  • 网站微信建设运维经验分享图郑州seo技术博客
  • 办公室电脑局域网组建重庆seo整站优化外包服务
  • 花都个性设计商城网站建设新网站百度多久收录
  • 现场直播cctv5直播吧北京seo课程
  • c 网站开发连接mysql济南百度推广开户
  • 用mac做网站福州网站快速排名提升
  • 鄂州做网站公司网站推广交换链接
  • 做个网站上百度怎么做中文搜索引擎有哪些平台
  • phpwind 企业网站广东seo网站推广代运营
  • 互联网情况下做企业网站的有点长沙百度推广排名优化
  • 网站改版iis301跳转如何做爱站网长尾关键词挖掘工具电脑版
  • 做网站实际尺寸是多少南京市网站
  • 郑州的网站建设公司今日头条关键词排名优化
  • 做电商的几个网站ds2600ii色带
  • 网站建设方案说明书google官网登录入口
  • 网站里添加聊天框怎么做嘉兴seo优化