- 博客(51)
- 收藏
- 关注
原创 【机试准备】常用容器与函数
向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的。
2024-09-15 16:11:49 605
原创 【代码随想录】字符串
反转字符串,使用reverse函数或swap+双指针实现。替换数字,使用快慢双指针,ASCAII码,resize函数重新分配数组空间
2024-09-10 23:08:06 1032
原创 【代码随想录】区间和——前缀和方法
前缀和;vector初始化方法;while(cin>>a>>b);当C++ 代码面对大量数据读取输出操作最好用scanf 和 printf
2024-08-10 03:37:28 823
原创 【代码随想录】数组理论基础
要注意vector 和 array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。正式因为数组在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。不同编程语言的内存管理是不一样的。数组可以方便地通过下标索引地方式获取到下标对应的数据。那么二维数组直接上图,大家应该就知道怎么回事了。理解数组在内存中的存储方式。
2024-08-01 07:40:05 169
原创 【CSP CCF记录】202112-2 序列查询新解
运行错误,得70分,一开始以为提示中说error会很大,所以把所有的int类型改成了long long类型,但是并没有什么用,样例测试都正确但仍然70分。重新开辟数组 ,这次是运行超时,70分。推测之前是数据太大爆了。
2024-05-11 22:48:15 198
原创 【CSP CCF记录】202203-2 出行计划
如第5条出行计划,t=35,c=24,在[12,35]之间拿到核酸结果则可以正常出行,则a[12]=1,a[13]=1...a[35]=1。同时,像t=5,c=24这样的情况,最早也只能在0时刻取得核酸结果,因此时间区间的开始时刻改为start=max(t-c+1,0)输入查询q,代表q时刻做核算,得到核酸的时间为q+k,只需读取a[q+k]即可得知在这个时刻拿到核酸结果可以满足几条出行计划。一开始设置a[100001],运行超时,后来按照参考代码就正确了,没想明白,,,,对不等式进行变换可得。
2024-05-08 16:44:10 437
原创 【CSP CCF记录】202203-1 未初始化警告!
采用两个数组分别记录左值和右值,每输入一条赋值语句在左值数组中寻找右值是否出现过。但两层循环时间复杂度高,运行超时。采用一个数组记录已赋值的变量。
2024-05-08 08:29:12 200
原创 【CSP CCF记录】202206-2 寻宝!大冒险!
依据条件,从绿化图中第一棵树的坐标开始区域遍历。统计绿化图与藏宝图中一一对应的树的棵数sum,在进行区域比对前,判断该区域树的数量是否等于sum,不等的话直接跳过该区域。3.原宝藏图位置[j][k]有树,从绿化图位置计算[j][k]有树,推测情况与真实情况相符,保留;3.将绿化图中的每一棵树的坐标(x,y)作为(0,0)点,其它树的坐标(xx,yy)对应藏宝图中坐标(xx-x,yy-y)。2.原宝藏图位置[j][k]没有树,从绿化图位置计算[j][k]有树,推测情况与真实情况不符,舍弃。
2024-05-07 19:55:35 280
原创 【CSP CCF记录】202206-1 归一化处理:fixed和setprecision的使用
使用fixed和setprecision控制输出格式。注意输出精度,小数保留16位。
2024-05-07 10:28:43 297
原创 【CSP CCF记录】202209-2 何以包邮
本质上就是从i各物品中选择一定数量的物品在一定空间限制的前提下,求这些物品的最大总价值。我们可以定义一个二维数组dp[i][j],这个数组的值就表示从前i件物品进行选择,在不超过容量j的前提下所满足最大的物品总价值。
2024-05-07 00:00:58 983
原创 【CSP CCF记录】202209-1 如此编码
当a和被b均为int, long, char这样的整数类型,此时除法运算的结果为所得商的整数部分,例如:180/100,结果为1;当a和b中有一个或两个都是小数(float,double)型的数,其商的结果为实际结果。例如:180.0/100,结果为1.8;
2024-05-06 11:39:00 264
原创 【CCF CSP记录】202303-2 垦田计划
例如,原本最大耗时为7天,缩短到6天后,原本开垦时长为7天的区域就变为了开垦时长为6天的区域,这时候开垦时长为6天的区域就增加了,所以再降低一天所需的资源数也要增加相应的值。所以,我们先记录初始时的最大耗时maxtime,然后以maxtime为起点,逐天降低最大耗时,当到某一天剩余资源无法再将当前最大耗时降低一天或者最大耗时已经降低到最少开垦天数时,循环结束。总耗时取决于耗时最长的区域,我们只需用资源把最大耗时降到最小,就等同于将最终的开垦天数降到最小。
2024-04-26 20:25:01 323 1
原创 【CCF CSP记录】202305-2 矩阵运算
有效地减少了计算时间,特别是在处理长序列时。这种优化通常在数据维度一不等时有显著效果,特别是当序列长度显著大于向量维度时。关键:通过改变计算顺序优化时间复杂度。
2024-04-25 18:59:21 350 1
原创 【CCF CSP记录】202305-1 重复局面
利用map键值唯一的性质,将棋盘局面(包含64各字符的字符串string)设置为键值,将该局面是第几次出现设置为数据值,即map<string, int> status_map;每次输入新的棋盘局面,就通过键值一步对比出是否重复,若重复,数据值+1;map.count(“amy”) //查看map中键值为amy的键值对有几个,只能为1或0,因为map键值唯一。map是C++中STL中的一个关联容器,以键值对来存储数据,数据类型自己定义。同时map是一对一的,具体就是键值是唯一的,跟哈希表的概念差不多。
2024-04-24 20:51:02 416
原创 【CCF CSP记录】 202309-2 坐标变换(其二)
使用setprecision语句需要包含头文件。使用fixed语句需要包含头文件。那么无论输入的是整数还是浮点数,最终在输出的时候。这个语句的作用是,控制。
2024-04-24 16:26:02 256
原创 【CCF CSP记录】202312-2 因子化简
2、循环,从j=2开始依次向后判断,可以被n除尽则就是n的一个素因子,n也相应缩小j倍。在此说明,除完2开始除3,然后是4,4一定不能被整除,因为如果能被4整除则一定会被2整除,后面的也是这样。3、再说一下循环结束条件一定是n,n的大小一直在成倍的缩小,而除数的值永远都不能大于n,因此循环判断条件为j
2024-04-23 10:18:38 618
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人