自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 指针的定义和删除

在C++中,当你使用 new 操作符动态分配内存时,你需要负责释放这块内存。这是通过 delete 操作符完成的。如果你不释放动态分配的内存,就会产生内存泄漏。如果你使用 new[] 分配了一个数组,那么应该使用 delete[] 来释放内存。1.指针的定义指针的声明需要指定指针的类型和它指向的变量的类型。

2024-12-24 15:41:51 266

原创 结构体struct初始化

成员初始化列表是C++中推荐的方式,因为它允许在对象构造时直接初始化成员变量,而不是在构造函数体内赋值。这不仅效率更高,还可以初始化常量成员和引用成员。2.在构造函数体内赋值。

2024-12-24 15:18:56 255

原创 常见数据结构

对于unordered_map或unordered_set容器,其遍历顺序与创建该容器时输入的顺序不一定相同,因为遍历是按照哈希表从前往后依次遍历的。,因为map内部实现了红黑树,虽然提高了运行效率,但是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间。适用处:**对于查找问题,unordered_map会更加高效一些,**因此遇到查找问题,常会考虑一下用unordered_map。,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作。

2024-12-23 22:26:04 210

原创 在主函数中多次调用函数

对于vector,stack,queue这样的数据结构,需要在每次函数调用时初始化。

2024-12-16 21:49:50 113

原创 动态规划经典例题

最长公共子序列(Longest Common Subsequence, LCS)问题是计算机科学中的一个经典问题,它要求找出两个序列(通常是字符串)的最长公共子序列,且要求子序列中的元素在原序列中是连续的。斐波那契数列定义为:F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2)。问题描述:给定两个字符串 str1 和 str2,求将 str1 转换为 str2 的最小编辑距离。问题描述:在一个二维矩阵中,从左上角到右下角,只能向右或向下移动,求路径的最小和。

2024-12-13 00:24:16 1667

原创 map\unordered_map\set\unordered_set

set与unordered_set一样,都是关联式容器,和 map 容器不同,使用 set 容器存储的各个键值对,要求键 key 和值 value 必须相等。空间占用率高,因为map内部实现了红黑树,虽然提高了运行效率,但是因为每一个节点都需要额外保存父节点、孩子节点和红/黑性质,使得每一个节点都占用大量的空间。插入、删除、查找元素的时间复杂度是常量的(排除偶尔的rehashing导致的线性复杂度)有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作。查找函数具有对数复杂度。

2024-12-11 17:27:43 235

原创 sort函数的用法——结构体排序

需要注意的是cmp比较函数虽然是bool类型的,但是不能返回1,必须写成a.val < b.val;比较规则:将结构体按cnt降序排列,若cnt值相同时,按val升序排。对于双(多)标准的结构体排序,有三种方法可供参考。

2024-12-10 15:40:40 585

原创 C++ String(字符串)和 float/double (浮点数)互转

std :: stold() - 将string转换为long double。std :: stod() - 将string转换为double。std :: stof() - 将string转换为float。

2024-12-07 16:00:00 850

原创 C++ String(字符串)和 int(整数) 互转

【代码】C++ String(字符串)和 int(整数) 互转。

2024-12-07 15:53:57 809

原创 hash函数

【代码】hash函数。

2024-11-26 23:25:41 109

原创 一些小技巧

在C++中,std::ios::sync_with_stdio(false)是一个用来提高输入输出效率的函数。默认情况下,C++的输入输出流(如cin和cout)与C语言的标准输入输出(如scanf和printf)是同步的。使用std::ios::sync_with_stdio(false)可以关闭这种同步,从而提高程序的执行效率。int类型的值范围为-2147483648~2147483647,所以若数的范围超过10的9次方,则用long long数据类型。

2024-11-26 21:28:01 195

原创 字符串相关函数

flag = "c";

2024-11-26 17:29:48 229

原创 csp20180903-元素选择器

题目思路原思路是建立一棵树,然后如果要进行匹配,就从根节点开始查找,但是可能复杂度比较高,因为这个的多级的后代选择器在匹配时,会比较麻烦。后来参考了一下网上是思路,发现更简单、快速。先进行n行输入,把每一行都输入进node类型的数组nd,包括lable、id、nb等信息,lable是标签,nb是记录的此行共有几个点,也就是级别。如果搜索的时候,只给出了一级,那么只要遍历数组nd,寻找有没有匹配的lable或者id即可。若是多级别搜索,那么只要判断最低级别的p,先找到它,然后对它高的等

2020-06-05 14:30:42 189

原创 week16 csp-m4

A - TT数鸭子题目思路只要它给定一个多位数字,计算这个数字中有多少个不同的数字,再和k比较即可。注意点此题的时间卡的很死,最好做一些优化。加上这一行std::ios::sync_with_stdio(false);就可以使得cin、cout的时间和scanf、printf接近。代码#include<iostream>#include<string>#include<string.h>using namespace std;

2020-06-05 11:53:47 254

原创 Week15 作业 A - ZJM 与霍格沃兹

题目input[expelliarmus] the disarming charm[rictusempra] send a jet of silver light to hit the enemy[tarantallegra] control the movement of one's legs[serpensortia] shoot a snake out of the end of one's wand[lumos] light the wand[obliviate] the memor

2020-05-28 19:06:54 216 1

原创 Week14 限时大模拟 A - 猫睡觉问题

题目input12 12 123:00-01:003 4 307:00-08:0011:00-11:0919:00-19:59outputYes101:07-22:13No思路最初的想法,就是用一个结构体存储每个番的开始时间和结束时间, 然后依次遍历每个番,判断清醒时间是不是超了,判断间隙时间是否足够睡觉。但是忘记考虑了结尾和开头之间的时间。结尾和开头之间的时间比较复杂,需要单独判断,判断是否够睡的,如果不够睡觉,那么要看清醒时间是不是过长。如果每一天都没有睡觉的时

2020-05-23 20:39:46 343

原创 Week14 作业 矩阵快速幂

A - Q老师与石头剪刀布题目思路按照顺序遍历字符串s,若是R,则Q老师有S,就在对应位置设置为S(举例),若是没有,则把此位置入队列。等到遍历结束,看Q老师还剩下多少R、S、P,然后把剩下的字母分配给还没有设置的位置。代码#include<iostream>#include<queue>using namespace std;int a[3];char ca[3]={'R','P','S'};int main(){ int t;cin>&

2020-05-21 18:30:28 172

原创 Week13 作业 D - TT 的苹果树(选做)

一、题目描述在大家的三连助攻下,TT 一举获得了超级多的猫咪,因此决定开一间猫咖,将快乐与大家一同分享。并且在开业的那一天,为了纪念这个日子,TT 在猫咖门口种了一棵苹果树。一年后,苹果熟了,到了该摘苹果的日子了。已知树上共有 N 个节点,每个节点对应一个快乐值为 w[i] 的苹果,为了可持续发展,TT 要求摘了某个苹果后,不能摘它父节点处的苹果。TT 想要令快乐值总和尽可能地大,你们能帮帮他吗?Input结点按 1~N 编号。第一行为 N (1 ≤ N ≤ 6000) ,代表结点个数。

2020-05-15 10:51:40 143

原创 Week13 作业 C - TT 的奖励

一、题目描述在大家不辞辛劳的帮助下,TT 顺利地完成了所有的神秘任务。神秘人很高兴,决定给 TT 一个奖励,即白日做梦之捡猫咪游戏。捡猫咪游戏是这样的,猫咪从天上往下掉,且只会掉在 [0, 10] 范围内,具体的坐标范围如下图所示。TT 初始站在位置五上,且每秒只能在移动不超过一米的范围内接住掉落的猫咪,如果没有接住,猫咪就会跑掉。例如,在刚开始的一秒内,TT 只能接到四、五、六这三个位置其中一个位置的猫咪。喜爱猫咪的 TT 想要接住尽可能多的猫咪,你能帮帮他吗?Input多组样例。每

2020-05-14 13:25:44 151 1

原创 Week13 作业 B - TT 的神秘任务2(必做)

一、题目描述在你们的帮助下,TT 轻松地完成了上一个神秘任务。但是令人没有想到的是,几天后,TT 再次遇到了那个神秘人。而这一次,神秘人决定加大难度,并许诺 TT,如果能够完成便给他一个奖励。任务依旧只给了两个数字,分别表示 n 和 k,不过这一次是要求 TT 给出无法被 n 整除的第 k 大的正整数。例如 n = 3,k = 7,则前 7 个无法被 n 整除的正整数为 [1 2 4 5 7 8 10],答案为 10。好奇的 TT 想要知道奖励究竟是什么,你能帮帮他吗?Input第一行

2020-05-13 23:48:01 186 1

原创 Week13 作业 A - TT 的神秘任务1(必做)

一、题目描述这一天,TT 遇到了一个神秘人。神秘人给了两个数字,分别表示 n 和 k,并要求 TT 给出 k 个奇偶性相同的正整数,使得其和等于 n。例如 n = 10,k = 3,答案可以为 [4 2 4]。TT 觉得这个任务太简单了,不愿意做,你能帮他完成吗?本题是SPJInput第一行一个整数 T,表示数据组数,不超过 1000。之后 T 行,每一行给出两个正整数,分别表示 n(1 ≤ n ≤ 1e9)、k(1 ≤ k ≤ 100)。Output如果存在这样 k 个数字,

2020-05-13 22:44:06 5387

原创 CSP-M3 补题 T4 咕咕东学英语

一、题目描述二、思路概述原本想的是一种暴力算法,算出给定的串中的回文串有多少个,再看这些回文串可以拼凑出几个delicious的子串,但是好像太暴力,不太对。算出符合要求的串的个数太慢了,但是可以算出不符合要求的串的个数,再由总串数减掉不合要求的。考虑到只有ABBBB…B BBBB…BA BAAAA…A AAAAA…AAB这种字符串不满足条件,也就是子串里有只有一个A或者一个B。先正向遍历串,去掉BBBB…BA || AAAAA…AAB这样的串。再反向遍历串,去掉ABBBB…B||

2020-05-10 17:12:50 194

原创 CSP-M3 补题 T2 消消乐大师——Q老师

一、题目描述二、思路概述此题就是给定一个矩阵,看这个矩阵里面有没有横着或者竖着连在一起的超过2个相同的数字,若有,则设为0,最后输出矩阵。问题在于,有的数字处在交叉的位置,若先将横着的都置0,则竖着的就断开了,无法得到正确答案。可以用一个struct成员,包括x和y两个数据,x用来存储输入的矩阵,y初始与x相同,但是如果矩阵的哪些位置要被消掉,则根据x将y的值置0三、细节像是这种需要比较一个序列中,相邻两个数字是否相同,需要考虑好头、尾两个界限,不能越界。四、完整代码#incl

2020-05-10 16:44:37 426

原创 CSP-M3 补题 T1瑞神的序列

一、题目描述二、思路概述遍历给定的序列,然后用tol来记录总共有几段,每遇到一个新的数字,tol++tol就是最终答案三、完整代码#include<iostream>using namespace std;int main(){ int n;cin>>n; int *a=new int[n]; for(int i=0;i<n;i++){ cin>>a[i]; } int tol=0; int num=1010; for(in

2020-05-10 16:35:44 130

原创 Week12 作业 E - 选做题(ddl扣分)

一、题目描述Description马上假期就要结束了,zjm还有 n 个作业,完成某个作业需要一定的时间,而且每个作业有一个截止时间,若超过截止时间,一天就要扣一分。zjm想知道如何安排做作业,使得扣的分数最少。Tips: 如果开始做某个作业,就必须把这个作业做完了,才能做下一个作业。Input有多组测试数据。第一行一个整数表示测试数据的组数第一行一个整数 n(1<=n<=15)接下来n行,每行一个字符串(长度不超过100) S 表示任务的名称和两个整数 D 和 C,分别表

2020-05-10 13:31:22 260

原创 Week12 作业 D - 选做题(括号匹配子序列)

一、题目描述We give the following inductive definition of a “regular brackets” sequence:the empty sequence is a regular brackets sequence,if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences, andif a and b are regular bracket

2020-05-10 11:37:48 269 1

原创 Week12 作业 C - 必做题(n个数里取m段使它们的和最大)

一、题目描述东东每个学期都会去寝室接受扫楼的任务,并清点每个寝室的人数。每个寝室里面有ai个人(1<=i<=n)。从第i到第j个宿舍一共有sum(i,j)=a[i]+…+a[j]个人这让宿管阿姨非常开心,并且让东东扫楼m次,每一次数第i到第j个宿舍sum(i,j)问题是要找到sum(i1, j1) + … + sum(im,jm)的最大值。且ix <= iy <=jx和ix <= jy <=jx的情况是不被允许的。也就是说m段都不能相交。注:1 ≤ i ≤ n

2020-05-10 10:56:19 334 1

原创 Week12 作业 B - 必做题(三维空间迷宫)

一、题目描述zjm被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成。zjm每次向上下前后左右移动一个单位需要一分钟,且zjm不能对角线移动。空间的四周封闭。zjm的目标是走到空间的出口。是否存在逃出生天的可能性?如果存在,则需要多少时间?Input输入第一行是一个数表示空间的数量。每个空间的描述的第一行为L,R和C(皆不超过30)。L表示空间的高度,R和C分别表示每层空间的行与列的大小。随后L层,每层R行,每行C个字符。每个字符表示空间的一个单元。’#‘表示不

2020-05-10 10:29:08 564

原创 Week12 作业 A - 必做题 - 1( 给出n个数,找出出现至少(n+1)/2次的数)

一、题目描述给出n个数,zjm想找出出现至少(n+1)/2次的数, 现在需要你帮忙找出这个数是多少?Input本题包含多组数据:每组数据包含两行。第一行一个数字N(1<=N<=999999) ,保证N为奇数。第二行为N个用空格隔开的整数。数据以EOF结束。Output对于每一组数据,你需要输出你找到的唯一的数。Sample Input51 3 2 3 3111 1 1 1 1 5 5 5 5 5 571 1 1 1 1 1 1Sample Out

2020-05-10 00:00:35 408 1

原创 csp 201609-3 炉石传说

一、题目描述二、思路概述使用一个struct类型character来表示人物,character里面包括生命值、攻击值和标记是否已经有人物了。对每个玩家都有一个数组来存储英雄和随从的信息,0号表示英雄,1-7号表示随从。召唤随从时,要看召唤的位置是否已经有了随从,如果有了的,要把从这个位置往后,都后移一位,如果没有,只要直接放入相应的位置即可。(flag可以用来判断此位置是否有了随...

2020-05-05 20:07:00 169

原创 Week11 作业 F - 选做题11-2 东东开车了

一、题目描述题面东东开车出去泡妞(在梦中),车内提供了 n 张CD唱片,已知东东开车的时间是 n 分钟,他该如何去选择唱片去消磨这无聊的时间呢假设:CD数量不超过20张没有一张CD唱片超过 N 分钟每张唱片只能听一次唱片的播放长度为整数N 也是整数我们需要找到最能消磨时间的唱片数量,并按使用顺序输出答案(必须是听完唱片,不能有唱片没听完却到了下车时间的情况发生)本题是 Spe...

2020-05-02 23:34:27 140

原创 Week11 作业 E - 选做题11-1 东东与 ATM

一、题目描述一家银行计划安装一台用于提取现金的机器。机器能够按要求的现金量发送适当的账单。机器使用正好N种不同的面额钞票,例如D_k,k = 1,2,…,N,并且对于每种面额D_k,机器都有n_k张钞票。例如,N = 3,n_1 = 10,D_1 = 100,n_2 = 4,D_2 = 50,n_3 = 5,D_3 = 10表示机器有10张面额为100的钞票、4张面额为50的钞...

2020-05-02 23:30:23 279

原创 Week11 作业 D - 必做题11-4

一、题目描述题面东东和他的女朋友(幻想的)去寿司店吃晚餐(在梦中),他发现了一个有趣的事情,这家餐厅提供的 n 个的寿司被连续的放置在桌子上 (有序),东东可以选择一段连续的寿司来吃东东想吃鳗鱼,但是东妹想吃金枪鱼。核 平 起 见,他们想选择一段连续的寿司(这段寿司必须满足金枪鱼的数量等于鳗鱼的数量,且前一半全是一种,后一半全是另外一种)我们用1代表鳗鱼,2代表金枪鱼。比如,[2,2,2...

2020-05-02 23:13:17 202

原创 Week11 作业 C - 必做题11-3

一、题目描述题面Julius Caesar 曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后 5 位对应的字符来代替,这样就得到了密文。比如字符’A’用’F’来代替。如下是密文和明文中字符的对应关系。密文A B C D E F G H I J K L M N O P Q R S T U V W X Y Z明文V W X Y Z A B C D E F G H I ...

2020-05-02 23:09:17 287

原创 Week11 作业 B - 必做题11-2

一、题目描述题面蒜头君的班级里有 n*n个同学,现在全班同学已经排列成一个 n∗n 的方阵,但是老师却临时给出了一组新的列队方案为了方便列队,所以老师只关注这个方阵中同学的性别,不看具体的人是谁这里我们用 0 表示男生,用 1 表示女生现在蒜头君告诉你同学们已经排好的方阵是什么样的,再告诉你老师希望的方阵是什么样的他想知道同学们已经列好的方阵能否通过顺时针旋转变成老师希望的方阵不需要旋...

2020-05-02 23:03:41 124

原创 Week11 作业 A - 必做题11-1

一、题目描述题面蒜头君从现在开始工作,年薪 N 万。他希望在蒜厂附近买一套 60 平米的房子,现在价格是 200 万。假设房子价格以每年百分之 K 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 N 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 N 万,房价 200 万)输入格式一行,包含两个正整数N(10≤N≤50),K(1≤K≤20),中间用单个空格隔开...

2020-05-02 22:52:37 202

原创 week10 B-团队聚会

一、题目描述题目描述TA团队每周都会有很多任务,有的可以单独完成,有的则需要所有人聚到一起,开过会之后才能去做。但TA团队的每个成员都有各自的事情,找到所有人都有空的时间段并不是一件容易的事情。给出每位助教的各项事情的时间表,你的任务是找出所有可以用来开会的时间段。输入格式第一行一个数T(T≤100),表示数据组数。对于每组数据,第一行一个数m(2 ≤ m ≤ 20),表示TA的...

2020-04-29 23:58:31 303

原创 week10限时测试 A - 签到题

一、题目描述题目描述TT有一个A×B×C的长方体。这个长方体是由A×B×C个1×1×1的小正方体组成的。现在TT想给每个小正方体涂上颜色。需要满以下三点条件:每个小正方体要么涂成红色,要么涂成蓝色。所有红色的小正方体组成一个长方体。所有蓝色的小正方体组成一个长方体。现在TT想知道红色小正方体的数量和蓝色小正方体的数量的差异。你需要找到红色正方体的数量与蓝色正方体的数量差值的绝对...

2020-04-29 23:20:26 97

原创 Week10 作业 C - 拿数问题 II

一、题目描述题面给 n 个数,每一步能拿走一个数,比如拿第 i 个数, Ai = x,得到相应的分数 x,但拿掉这个 Ai 后,x+1 和 x-1 (如果有 Aj = x+1 或 Aj = x-1 存在) 就会变得不可拿(但是有 Aj = x 的话可以继续拿这个 x)。求最大分数。本题和课上讲的有些许不一样,但是核心是一样,需要你自己思考。Input第一行包含一个整数 n (1 ≤...

2020-04-23 21:58:13 239

原创 Week10 作业 B - LIS & LCS

一、题目描述题面给定两个序列A和B。求序列A的LIS和序列AB的LCS的长度。注意,LIS为严格递增的,即a1<a2<…<ak(ai<=1,000,000,000)。Input第一行两个数n,m(1<=n<=5,000,1<=m<=5,000)第二行n个数,表示序列A第三行m个数,表示序列BOutput输出一行数据ans...

2020-04-23 21:19:50 219

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除