C++
文章平均质量分 51
菜喵一只
招聘粉丝
展开
-
C++ STL set容器
和 map、multimap 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。举个例子,如下有 2 组键值对数据:显然,第一组数据中各键值对的键和值不相等,而第二组中各键值对的键和值对应相等。对于 set 容器来说,只能存储第 2 组键值对,而无法存储第一组键值对。基于 set 容器的这种特性,当使用 set 容器存储键值对时,只需要为其提供各键值对中的 value 值(也就是 key 的值)即可。原创 2024-01-13 20:06:41 · 871 阅读 · 1 评论 -
C++ STL deque容器
eque 是 double-ended queue 的缩写,又称双端队列容器。O(1)和 vector 不同的是,deque 还擅长在序列头部添加或删除元素,所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是,deque 容器中存储元素并不能保证所有元素都存储到连续的内存空间中。当需要向序列两端频繁的添加或删除元素时,应首选 deque 容器。deque 容器以模板类 deque(T 为存储元素的类型)的形式在 头文件中,并位于 std 命名空间中。原创 2023-12-31 19:53:43 · 939 阅读 · 0 评论 -
C++ STL priority_queue容器详解
priority_queue 容器适配器模拟的也是队列这种存储结构,即使用此容器适配器存储元素只能“从一端进(称为队尾),从另一端出(称为队头)”,且每次只能访问 priority_queue 中位于队头的元素。但是,priority_queue 容器适配器中元素的存和取,遵循的并不是 “First in,First out”(先入先出)原则,而是“First in,Largest out”原则。直白的翻译,指的就是先进队列的元素并不一定先出队列,而是优先级最大的元素最先出队列。原创 2023-12-21 18:11:55 · 837 阅读 · 0 评论 -
C++ stack用法详解
stack 栈适配器是一种单端开口的容器(如图 1 所示),实际上该容器模拟的就是栈存储结构,即无论是向里存数据还是从中取数据,都只能从这一个开口实现操作。图 1 stack 适配器示意图如图 1 所示,stack 适配器的开头端通常称为栈顶。由于数据的存和取只能从栈顶处进行操作,因此对于存取数据,stack 适配器有这样的特性,即每次只能访问适配器中位于最顶端的元素,也只有移除 stack 顶部的元素之后,才能访问位于栈中的元素。原创 2023-12-16 19:13:55 · 2001 阅读 · 0 评论 -
C++ STL vector容器详解
vector 容器是中最常用的容器之一,它和 array 容器非常类似,都可以看做是对普通数组的“升级版”。不同之处在于,array 实现的是静态数组(容量固定的数组),而 vector 实现的是一个动态数组,即可以进行元素的插入和删除,在此过程中,vector 会动态调整所占用的内存空间,整个过程无需人工干预。vector 常被称为向量容器,因为该容器擅长在尾部插入或删除元素,在常量时间内就可以完成,时间复杂度为O(1);原创 2023-12-15 16:46:35 · 2148 阅读 · 3 评论 -
文本反转-栈
云龙团长喜欢用相反的方式写单词。给出一行由团长写的文本,你应该把所有的单词倒过来,然后输出它们。原创 2023-12-14 13:12:29 · 392 阅读 · 0 评论 -
[CSP-J 2022] 乘方
小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 ab 的值是多少。a^b 即 b 个 a 相乘的值,例如 2^3 即为 3 个 2 相乘,结果为 2×2×2=8。“简单!”小文心想,同时很快就写出了一份程序,可是测试时却出现了错误。小文很快意识到,她的程序里的变量都是int类型的。在大多数机器上,int类型能表示的最大数为 2^31−1,因此只要计算结果超过这个数,她的程序就会出现错误。由于小文刚刚学会编程,她担心使用int计算会出现问题。原创 2023-11-04 19:14:53 · 127 阅读 · 0 评论 -
[NOIP2018 山东小学组] 快递费用
某快递公司按邮寄物品的重量收费,收费标准如下:重量在 500 克以内的,一律 20 元;超过 500 克的,超重的部分按每 500 克加收费用。超出的重量不足 500 克的,按 500 克计算。例如:1020 克,超重 720 克,需加收两份费用。根据目的地的不同,加收的费用是不一样的。快递公司划分了五个目的地区域:区域 1:每超重 500 克加收 4 元;区域 2:每超重 500 克加收 6 元;区域 3:每超重 500 克加收 9 元;原创 2023-10-24 13:29:53 · 86 阅读 · 0 评论 -
A*B Problem
给出两个非负整数,求它们的乘积。原创 2023-10-18 13:16:33 · 52 阅读 · 0 评论 -
#链表模板
【代码】#链表模板。原创 2023-10-13 13:12:08 · 40 阅读 · 0 评论 -
[NOI2016] 网格
跳蚤国王和蛐蛐国王在玩一个游戏。他们在一个 n 行 m 列的网格上排兵布阵。其中的 c 个格子中 (0≤c≤n⋅m),每个格子有一只蛐蛐,其余的格子中,每个格子有一只跳蚤。我们称占据的格子有公共边的两只跳蚤是相邻的。我们称两只跳蚤是连通的,当且仅当这两只跳蚤相邻,或存在另一只跳蚤与这两只跳蚤都连通。现在,蛐蛐国王希望,将某些(零个,一个或多个)跳蚤替换成蛐蛐,使得在此之后存在至少两只跳蚤不连通。例如:图 11 描述了一个 n=4,m=4,c=2 的情况。原创 2023-09-29 13:55:46 · 63 阅读 · 2 评论 -
ACM Regional
2016年11月12-13日,第41届ACM国际大学生程序设计竞赛亚洲区域赛青岛站在中国石油大学(青岛)体育馆举行。来自清华大学、北京大学、天津大学、香港中文大学等187所高校、1所中学的327支代表队,从9月网络赛的1600多支队伍中脱颖而出,共同争夺2017年世界总决赛的出线资格。本次大赛的金、银、铜奖项设置比例分别为1 : 2 : 3。经过激烈角逐,最终产生金奖32项、银奖64项、铜奖96项,剩下的均为优胜奖。原创 2023-09-17 11:57:55 · 60 阅读 · 0 评论 -
【营业额】C++
我叫王大锤,昨天还是一名C++老师。万万没想到,我又失业了。昨天上课前我写的程序让整个学校的电脑中了病毒。为了生计,无可奈何,在学校旁边的唐师傅理发店找了一份兼职。唐师傅理发店已经开张十年有余,生意红火。唐币是一种专门用来唐师傅营业额的,用int以至于long long int已经无法表示唐师傅的总营业额了。而唐师傅又想要计算自开业以来的总营业额。他给了我两个账本和我的第一个任务,能不能获得这份工作,在此一举!每个账本都已经在最后一页写上了这一时期的总营业额,设计一个程序,计算出它们的和。原创 2023-09-08 20:43:58 · 81 阅读 · 0 评论 -
求最大公约数问题
如果数a能被数b整除,a就叫做b的倍数,b就叫做a的约数。几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。原创 2023-08-17 18:28:28 · 46 阅读 · 2 评论 -
白细胞计数
医院采样了某临床病例治疗期间的白细胞数量样本n份,用于分析某种新抗生素对该病例的治疗效果。为了降低分析误差,要先从这n份样本中去除一个数值最大的样本和一个数值最小的样本,然后将剩余n−2个有效样本的平均值作为分析指标。同时,为了观察该抗生素的疗效是否稳定,还要给出该平均值的误差,即所有有效样本(即不包括已扣除的两个样本)与该平均值之差的绝对值的最大值。现在请你编写程序,根据提供的n个样本值,计算出该病例的平均白细胞数量和对应的误差。原创 2023-08-15 19:22:32 · 57 阅读 · 1 评论 -
【06NOIP普及组】明明的随机数
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。原创 2023-08-15 18:56:43 · 63 阅读 · 1 评论 -
编程比赛的最高分、最低分、平均分
2022校长杯编程竞赛Python组别的比赛已经结束。张老师导出了所有参赛同学的成绩,他想对这个比赛做一个总结,所以需要得到本次比赛的最高分、最低分和平均分,你能写一个程序帮助张老师完成该任务吗?原创 2023-08-11 15:38:46 · 86 阅读 · 1 评论 -
阿克曼(Ackmann)函数
阿克曼(Ackmann)函数A(m,n)A(m,n)中,m,nm,n定义域是非负整数(m≤3,n≤10)(m≤3,n≤10),函数值定义为: 输入m和n函数值。原创 2023-08-10 18:12:00 · 531 阅读 · 1 评论 -
精挑细选C++
小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:1、这根钢管一定要是仓库中最长的;2、这根钢管一定要是最长的钢管中最细的;3、这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。相关的资料到是有,可是,手工从几百份钢管材料中选出符合要求的那根……要不,还是请你编写个程序来帮他解决这个问题吧。原创 2023-08-09 22:43:28 · 231 阅读 · 1 评论 -
[爬楼梯]
例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数。输入包含若干行,每行包含一个正整数N,代表楼梯级数,1≤N≤30。不同的走法数,每一行输入对应一行输出。这到题是和斐波那契很像的题。原创 2023-08-09 09:54:10 · 37 阅读 · 1 评论 -
[CSP-X 2022 补赛] 动物园
这个动物园的门票比较特殊,游客在购买门票时必须说明要参观的场馆的起止编号a 和b(起止编号会打印到游客购买的门票上),代表游客只能参观动物园的第 a个场馆至第 b个场馆(包含 a,b)里的动物,其他的场馆不能去。样例 1 说明:花费最少的其中一种购票方案选择是 a=2,b=7,表示购买场馆 2,3,4,5,6,7的门票,分别看到的动物是5,3,1,3,2,4 ,其中动物 3 小明看了两个。n 个场馆的编号分别用 1,2,3,..,n表示;m种动物的编号分别用 1,2,3,..,m 表示。原创 2023-08-08 13:46:28 · 462 阅读 · 4 评论 -
P6203 [USACO07CHN] The Bovine Accordion and Banjo Orchestra G
其中 N 头奶牛是手风琴手,另外 N 头奶牛是班卓琴手,每个手风琴手有一个天才指数 Ai(0≤Ai≤1000),每个班卓琴手也有一个天才指数 Bi(0≤Bi≤1000)。不幸的是,FJ 的奶牛都存在一种怪癖:如果第 i 位手风琴手和第 j 位班卓琴手配对,那么第 i+1∼N 位手风琴手,不会选择与第 1∼j−1 位班卓琴手配对。如果第 x 号手风琴手到第 y 号手风琴手都是失落的(x−1 和x+1 号手风琴手不存在或是参加了演出),这些奶牛就会去结队去酒吧喝酒,开销为:2(k=x∑yAk)2。翻译 2023-08-08 11:34:56 · 48 阅读 · 0 评论 -
P8525 [Ynoi2078] 《A Path Towards Autonomous Machine Intelligence》
题目很抽象,大概意思是,给出一个操作序列 (Li,Ri,v),v 是幺半群中的元素。并且给出运算 ⊕⊕,每次在操作序列末尾插入,或者询问给出 l,r,x,按顺序遍历 [l,r] 中的操作,若 i≤x≤Ri 就把答案 ⊕v,否则答案不变。操作 1:给定 l,r,x,先新建一个数组 b 满足 bi=ai,之后将 ax,…考虑建立的节点为自底向上的一条右链,那么注意到这里是可以对每个节点 pushup 的,此处的时间复杂度仍然为 O(nlogn)。操作 2:给定 l,r,将al,…转载 2023-08-08 09:45:56 · 106 阅读 · 0 评论 -
[CSP-X 2022 补赛] 摧毁
轨道 1 上有 2 个卫星,轨道 2 上有 3 个卫星,轨道 4 上有 2 个卫星,轨道 5 上有 3 个卫星。因为一个轨道上的卫星数量是有上限的,且卫星更新换代速度很快,如果想要发射新的卫星,需要把所有旧的卫星摧毁。对于 100% 的数据,1≤T≤100,1≤n≤10^6,1≤ai≤10^6,1≤c≤100, 且所有测试数据的 n加起来不超过 10^6。因此,对于轨道 1 采用激光武器,轨道 2 采用脉冲武器,对于 30% 的数据,T=1,1≤n≤10,1≤ai≤10,1≤c≤10;原创 2023-08-02 13:44:04 · 466 阅读 · 2 评论 -
吃包子-C++
每个包子必须一次吃完,不然就会坏掉。现在包子希望你帮他计算出这一周中他吃到包子最少的一天和吃到包子最多的一天相差的包子重量差多少。但是妈妈做的包子重量不能保证一致,可包子希望每天可以吃到尽可能一样多的包子,所以他会把这些包子分成 7 份。包子是个很喜欢吃包子的小朋友,所以妈妈每周都会帮他做 14 个包子,这样他就可以每天都有两个包子吃了。只包含一个正整数,代表把包子重新分配后,吃到包子最少的一天和吃到包子最多的一天相差的包子重量。只有一行,共有 14 个正整数,代表每个包子的重量。原创 2023-07-26 12:18:53 · 83 阅读 · 2 评论 -
[NOIP2015 山东小学组]上课时间
以前,周六的上午也是要上课滴:周一到周五上午四节课,下午两节课;周六上午还要上 4 节课,下午才开始休息。给你 n,请你从周一开始算起,n 天的上课时间是多少分钟?输出共一行,包含一个正整数,表示总上课时间 t。输入共一行,一个正整数 n,表示天数。现在,小学实行双休日(好幸福!已知每节课 40 分钟。原创 2023-07-08 18:21:04 · 110 阅读 · 0 评论 -
An Easy Problem
举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。输入若干行,每行一个数n(1≤n≤1000000),输入"0"结束。AC://写的代码有点乱,请原谅。输出若干行对应的值。原创 2023-06-22 11:42:31 · 114 阅读 · 1 评论 -
KKT函数506角谷猜想
角谷猜想是由日本数学家角谷静夫发现,是指对于每一个正整数,如果它是奇数,则乘3加1,如果是偶数,则除以2。如此循环,最终总能够得到1。3、若 n 为大于 1 的奇数,则 n 变成 n*3+1。若干行,每行表示一个操作,具体格式参见输出样例。2、若 n 为偶数,则 n 变成 n/2。1、若 n 为 1 ,操作结束。一行一个正整数 n。原创 2023-06-22 11:32:21 · 119 阅读 · 7 评论