首页 > 其他分享 >Week1——STL 与基础数据结构专题训练

Week1——STL 与基础数据结构专题训练

时间:2023-12-21 20:46:05浏览次数:39  
标签:tmp 10 正整数 STL ll cin int Week1 数据结构

https://blog.csdn.net/qq_46025844/article/details/127948957

 

实训概要
实训专题
STL 与基础数据结构专题训练

实训目的
掌握STL常用的算法、容器、容器适配器的使用方法。
能够利用STL的算法、容器、容器适配器求解问题。
题目列表
A:摘苹果
B:立方和
C:计算个数
D:后缀表达式的值
E:做蛋糕
F:查资料
G:明明的随机数
题解
A:摘苹果
【题目名称】摘苹果
【题目描述】
苹果树上有 n nn 个苹果,每个苹果的高度分別为 h 1 , h 2 , … , h n h_{1},h_{2},\dots,h_{n}h
1

,h
2

,…,h
n

你拥有一个非常方便的摘苹果工具,每次可以把指定高度上的所有苹果全部摘下来。

你打算摘 q qq 次,第 i ii 次摘高度为 a i a_{i}a
i

的所有苹果。

问每次可以摘到多少个苹果?

【输入】
第一行包含两个正整数 n , q ( 1 ≤ n ≤ 1 0 6 , 1 ≤ q ≤ 2 ∗ 1 0 5 ) n,q(1≤n≤10^{6},1≤q≤2*10^{5})n,q(1≤n≤10
6
,1≤q≤2∗10
5
),分别表示苹果的数量和摘苹果的次数。

第二行包含 n nn 个正整数 h 1 , h 2 , … , h n ( 1 ≤ h i ≤ 1 0 9 ) h_{1},h_{2},\dots,h_{n}(1\le h_{i} \le 10^{9})h
1

,h
2

,…,h
n

(1≤h
i

≤10
9
),分别表示每个苹果的高度。

其后 q qq 行,第 i ii 行包含一个正整数 a ( 1 ≤ a i ≤ 1 0 9 ) a(1≤ a_i ≤ 10^9)a(1≤a
i

≤10
9
),表示当次要摘的苹果的高度。

【输出】
对于每次摘苹果的操作,在一行内输出一个整数,表示这一次摘到的苹果的数量。

【输入样例】
6 4
1 2 1 1 2 4
1
2
1
3
1
2
3
4
5
6
【输出样例】
3
2
0
0
1
2
3
4
【题目分析】
本题考查 STL 中的 map ,只需统计每个高度的苹果数,然后采摘时输出即可,难度较低。

另外题目输入量较大,使用 cin读入优化 可以有效减少时间。

【 C++ 代码】:
#include<bits/stdc++.h>

using namespace std;
int n, q, tmp;
map<int, int> mp;

int main() {
ios::sync_with_stdio(false); //cin读入优化
cin.tie(0);

cin >> n >> q;
mp.clear();
for (int i = 0; i < n; ++i) {
cin >> tmp;
mp[tmp]++; //该高度苹果数量累加
}

for (int i = 0; i < q; ++i) {
cin >> tmp;
cout << mp[tmp] << endl; //输出该高度苹果总数
mp[tmp] = 0; //清零当前高度苹果数
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
B:立方和
【题目名称】立方和
【题目描述】
给你一个正整数 x xx,问是否存在至少一对正整数对 ( a , b ) (a,b)(a,b) 满足 a 3 + b 3 = x a^3+b^3=xa
3
+b
3
=x?

【输入】
第一行包含一个正整数 T ( 1 ≤ T ≤ 100 ) T(1≤ T≤100)T(1≤T≤100),表示测试数据组数。

每组数据占一行,包含一个正整数 x ( 1 ≤ x ≤ 1 0 12 ) x(1≤ x ≤10^{12})x(1≤x≤10
12
)。

【输出】
对于每组数据,如果存在至少一对 ( a , b ) (a,b)(a,b) 满足题意,输出 YES,否则输出 NO

【输入样例】
6
1
2
3
8
9
8567958184
1
2
3
4
5
6
7
【输出样例】
NO
YES
NO
NO
YES
YES
1
2
3
4
5
6
【题目分析】
本题有两种思路:

由于 x 最大不超过 1 0 12 10^{12}10
12
,故 a , b a,ba,b 的范围在 [ 1 , 1 0 4 ] [1,10^{4}][1,10
4
],因此可以对 a aa 枚举,对 b bb 用二分,实测可以 AC。(但是不能 a , b a,ba,b 均枚举,会超时)
可以先将所有 a 3 a^3a
3
存入容器中,然后枚举 b bb ,看 x − b 3 x-b^3x−b
3
是否在容器中,若有,则有解。

标签:tmp,10,正整数,STL,ll,cin,int,Week1,数据结构
From: https://www.cnblogs.com/cdutlibing/p/17920079.html

相关文章

  • 【数据结构】第二章——线性表(2)
    线性表的顺序表示导言大家好,很高兴又和各位见面啦!!!在上一个篇章中,我们简单了解了一下线性表的基础知识以及一下重要的术语。在今天的篇章中我们将来开始正式介绍线性表的顺序存储——又称顺序表。我们将会在本章介绍什么是顺序表,对于顺序表的操作我们又应该如何实现。接下来,我们就来......
  • 金牌导航-数据结构优化DP
    数据结构优化DP例题A题解设\(f_{i,j}\)表示以第\(i\)位为结尾,长度为\(j\)的严格单调上升子序列的数量。那么显然有\(f_{i,j}=\sum_{k=1}^{i-1}f_{k,j-1}\times(a_k<a_i)\)然后发现这玩应\(O(n^2m)\)直接寄掉了。考虑优化。发现只有当\(a_k<a_i\)时才会有贡献。......
  • python 数据结构与算法知识图
    1.算法思想:递归、分治(归并排序、二分查找、快速排序)、贪心(贪心策略排序+当前最优)、动态规划(最优子结构+递推式)、回溯(解空间:排列树+子集树、深度搜索+剪枝)、分支限界(解空间:排列树+子集树、广度搜索+剪枝))2.排序算法:(low:冒泡、插入、选择;mid:快排、归并、堆排(完全二叉树),其他:桶排序、基......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • Databend 源码阅读: Meta-service 数据结构
    作者:张炎泼(XP)DatabendLabs成员,Databend分布式研发负责人https://github.com/drmingdrmer引言Databend是一款开源的云原生数据库,采用Rust语言开发,专为云原生数据仓库的需求而设计。面向云架构:Databend是完全面向云架构的数据库,可以在云环境中灵活部署和扩展简介|......
  • C++(STL标准库)
    C++标准模板库(StandardTemplateLibrary,STL)是C++标准库的一部分,提供了一组通用的模板类和函数,包括数据结构和算法,以便开发者能够更容易地实现各种功能。STL的设计目标是提供高性能、灵活和通用的工具,使得开发者能够专注于问题的解决,而不必为数据结构和算法的实现而费心。STL......
  • 数据结构
    数据结构有:1.数组;2.栈;3.队列;4.链表(单链表、双向链表、循环链表);5.数;6.散列表;7.堆;8.图。一、数组内存连续,可通过元素下标访问。二、栈先进后出三、队列先进先出四、链表物理存储不连续,因为存储了相邻元素的物理地址,所以逻辑上连续。五、树每个节点有零个或多个子节点;没......
  • C++U4-第09课-STL容器
    学习目标 STL  栈stack [入栈出栈] 【算法分析】栈的基本操作。【参考代码】#include<bits/stdc++.h>usingnamespacestd;intmain(){stack<int>st;intn;cin>>n;for(inti=1;i<=n;i++){intx;cin......
  • 【面试官版】【持续更新中】融合滤波算法+数据结构+激光视觉SLAM+C++面试题汇总
    C++部分什么时候需要写虚函数、什么时候需要写纯虚函数?只继承接口为纯虚函数强调覆盖父类重写,或者父类也需要实现一定的功能,为虚函数指针传参和引用传参区别?引用传参本质上是传递原参数地址,指针传参本质还是值传递,生成拷贝指针,拷贝指针和原指针指向的为同一块内存。因此改变......
  • 数据结构之<图>的介绍
    图(Graph)的概念:在数据结构中,图是由节点(顶点)和边组成的非线性数据结构。图用于表示不同对象之间的关系,其中节点表示对象,边表示对象之间的连接或关系。1.图的基本组成元素:节点(Vertex或Node):表示图中的实体或对象。节点可以有不同的属性和值。在某些情况下,节点也被称为顶点。边(Edge):......