XCPC
文章平均质量分 75
好想要牌子啊。。。
想七想八不如11408
一只积极进取的菜鸟
展开
-
【动态规划】训练
这题硬币很像,就是判断条件不同。只有偶数才能转移。输入一个长为n的序列,输出这个序列最长上升子序列的长度。原创 2024-05-21 20:32:19 · 166 阅读 · 0 评论 -
【蓝桥杯】母牛的故事(递归) C语言
一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?输入输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0转载 2022-11-24 12:06:52 · 1846 阅读 · 3 评论 -
【蓝桥·算法双周赛】第七场分级赛——小白入门赛
st数组用来存第i个位置,这个字母有没有编号j。原创 2024-03-09 23:48:42 · 517 阅读 · 0 评论 -
【蓝桥杯】第十四届蓝桥杯模拟赛(第三期)C++ (弱go的记录,有问题的话求指点)
【蓝桥杯】第十四届蓝桥杯模拟赛(第三期)C++ (弱go的记录,有问题的话求指点)原创 2023-03-11 00:50:33 · 4337 阅读 · 4 评论 -
【蓝桥杯】2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题
根据题意多写几个,不难发现奇数似乎都能拆成y2 − z2的形式?因此,我们从奇偶的角度来找规律。那么,在这里就可以得出结论辣。但是好在,已知一个数x,对应的奇数、4的倍数的数的个数是可以算出来的。初步想法,x = y2 − z2=(y+z)(y-z)(这一步还不能过属实有点钻牛角尖了。但时间是(r-l)*x,数据1e9,直接T了。即x存在两个因数之和为偶数就能满足条件。即x=a*b,a=y+z,b=y-z。即a+b是2的倍数就好了。1.奇数 2.4的倍数。原创 2023-09-19 00:48:29 · 6133 阅读 · 2 评论 -
【蓝桥杯】第十五届蓝桥杯模拟赛(第二期)
例如,对 123456789 进行一次转换变为 1*2*3*4*5*6*7*8*9=362880,再进行一次转换变为 3*6*2*8*8=2304,再进行一次转换变为 2*3*4=24,再进行一次转换变为 8。对于 60% 的评测用例,1原创 2023-12-03 20:29:28 · 1779 阅读 · 0 评论 -
【蓝桥杯】二分、前缀和、差分练习
这题的思路是对每一种可能的正方形边长进行讨论,观察数据(1≤Hi,Wi≤1e5),因此正方形可能的边长为1-1e5。对每一个边长,讨论能分成几个这样的正方形并用sum记录,如果sum大于等于人数k,即满足题意。这里要理解一个长为h宽为w的长方形能分成(h/i)*(w/i)个边长为i的正方形。原创 2023-03-28 13:33:51 · 323 阅读 · 0 评论 -
统计大写辅音字母
【代码】统计大写辅音字母。原创 2022-11-12 20:10:59 · 101 阅读 · 0 评论 -
冒泡排序-排序
以从小到大为例,第一轮比较后,所有数中最大的那个数会浮到最右边;第二轮比较后,所有数中第二大的那个数就会浮到倒数第二个位置……从左到右,相邻元素进行比较。每比较一轮,就会找到序列中最大的或最小的一个。这个数就会从序列的最右边冒出来。就这样一轮一轮地比较,最后实现从小到大排序。原创 2022-11-22 22:09:38 · 84 阅读 · 0 评论 -
【组合数算法】以及校赛小复盘
这题真的不难,比赛的时候对字符串数组不熟悉复盘感觉当时应该错了两点细节字符串真的好多细节基本没什么逻辑,只要检查输入的对不对,调试一下,注意细节就完了。感觉没AC的主要原因是,这题没放在签到题的位置,乐。原创 2023-03-23 00:12:25 · 83 阅读 · 0 评论 -
关于比较中设置极大值,常设置的0x3f3f3f3f
int型变量的取值范围:[-2^31, 2^31 - 1] -> [-2147483648, 2147483647]原创 2023-04-17 08:42:46 · 373 阅读 · 0 评论 -
打印链表,分析
同时需要知道一点,当链表正序输出时最好使用循环迭代,用递归的代价是很大的。如果把1,2换一下这个时候就会逆序输出。打印链表通常会有两种方法,迭代和递归。当逆序输出链表时,递归是很不错的选择。当正序输出链表时,循环迭代就可以了;这里我们学习使用递归打印链表。原创 2022-11-23 19:59:58 · 477 阅读 · 0 评论 -
算法竞赛--随机数据生成与对拍
头文件 stdlib.h 包含 rand 和 srand 两个函数,以及RAND_MAX常量,RAND_MAX的值与操作系统环境和编译器环境有关,一般情况下,在Windows系统中为 32767,在类Unix系统中为2147483647。rand() 函数返回一个0~RAND_MAX 之间的随机整数intsrand(seed)函数接受unsigned int类型的参数seed,以seed为“随机种子”。rand函数基于线性同余递推式生成随机数,“随机种子”相当于计算线性同余时的一个初始参数。若不执行原创 2024-02-27 20:51:23 · 178 阅读 · 0 评论 -
【字符串处理】
这三种方式各有优劣,具体应使用哪种方式取决于需要输入的字符串及其格式。若字符串中有空格,建议使用getline函数或者cin.getline函数更为方便。一行句子,字符数组用cin.getline(a,100);本蒟蒻还是要开个专题写一下……函数都可以用于读取一行字符串,并且具有类似的功能,但是。一行句子,字符串用getline(cin,a)3.使用cin.getline函数: 可以。如果需要读取包含空格的字符串,建议使用。把一个标准字符串(即不包含空格)输入。输入包含空格的字符串。输入包含空格的字符串。原创 2023-04-19 22:36:33 · 350 阅读 · 1 评论 -
【技巧】在不知道输入数据数量的情况下输入多个数据
我们认识一下如何在不知道输入数据数量的情况下输入多个数据,这里提供两种方法。先换行,再按crtl+z,最后点一下回车。原创 2023-03-01 21:01:31 · 1088 阅读 · 0 评论 -
【技巧】四舍五入
【代码】【技巧】四舍五入。原创 2023-03-01 22:10:19 · 55 阅读 · 0 评论 -
【刷题】小技巧
好久没更了写天梯模拟L1都有题不能AC,是什么品种的蒟蒻。原创 2023-04-10 23:21:33 · 397 阅读 · 0 评论 -
实战问题02:低洼地
当出现连续向上的情况时,这里上坡就有5个,但实际上洼地只有1个,这样就出现了错误。因此,直接数坡数是不太可取的,从更普遍的角度看,洼地的左右两边存在上坡和下坡。我们就需要判断洼地的后面是上坡还是下坡。对于这道题目,我们需要输出洼地的个数。洼地处必有一条向下的坡和一条向上的坡。注意不能直接统计上坡的数量然后-1,先看到一个下坡之后,开始循环找上坡。找到了上坡,cnt++这题,有n个点,也就。原创 2023-03-01 20:43:35 · 250 阅读 · 0 评论 -
【二分查找】C语言实现
中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记。元素可以通过>、==、原创 2022-12-10 19:44:59 · 235 阅读 · 1 评论 -
【算法】PTA刷题记录
pta乙级原创 2023-09-16 23:17:32 · 171 阅读 · 0 评论 -
【STL】刷题
unique()是C++标准库函数里面的函数,其功能是去除相邻的重复元素(只保留一个),所以使用前需要对数组进行排序。 那它是怎么实现去重的呢?删除? 不是,它并没有将重复的元素删除,而是把重复的元素放到数组的最后面藏起来了原创 2023-03-18 17:43:12 · 381 阅读 · 0 评论 -
【字符串】刷题
赋值的话,那么还没等你输入系统就自动退出来了。因为系统自动将回车产生的字符 '\n' 赋给该字符变量了,所以此时。scanf输入字符后要用getchar() 吞回车!在位置1处忘了continue,导致已经确定一次相等之后l=2。这道题,我觉得是不难的,代码逻辑很清晰,但是提交就是有问题。(今天洛谷崩了没办法评测,但我相信应该是能AC的,埋个坑。最后“敲”的回车都会被留在缓冲区。最后“敲”的回车也会被留在缓冲区。对字符变量赋值前要首先清空缓冲区。原创 2023-03-17 23:30:26 · 119 阅读 · 0 评论 -
【算法基础】数据结构
如果是操作符(如+-*/),一直与栈顶比较运算符优先级,如果栈里的运算符优先级大就运算,直到目前这个运算符优先级小为止。同时保持单调队列,也就是如果队头的数比进来的数大就丢出去,这样保持队头是当前这个区间内的最小值。如果最后遍历完了,栈内还有运算符就算完,最后num栈顶的元素就是最后的运算结果。数学里-10%3=2,但在c++中结果是-1,负数模上一个数的结果是负数。额外需要注意的操作就只有统计每个集合中的元素个数,开一个s数组记录就好。3的二进制是011,5的二进制是101。和字符串集合的数据结构。原创 2023-07-06 13:26:32 · 310 阅读 · 0 评论 -
【算法基础】数学知识
时间复杂度是logN。原创 2023-09-19 17:34:41 · 3081 阅读 · 1 评论 -
【算法基础】搜索与图论
堆优化版对比朴素版的改变是,原本朴素版要找的未标记点中dist最小的点需要再一重循环,而堆可以省去。对每一个点,考察它的列、斜线、反斜线上是否有别的皇后,(因为行是在dfs的参数里考察的,有唯一性)有边数限制,如 “最多经过 k 条边的最短距离”,就只能用bellman-ford算法。一个有向图,如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。一直进行上面出处理,如果所有点都能被删掉,则这个图可以进行拓扑排序。用bfs,每回找到队列里的x做变换,用dis记录步数。原创 2023-07-14 16:22:01 · 561 阅读 · 0 评论 -
【算法基础】动态规划
每个物品只能放一次。原创 2023-11-19 16:33:42 · 223 阅读 · 0 评论 -
【算法基础】基础算法
思路:定义一个x(一般喜欢用中间的),我们快速排序,让x左边的都比它小,同时让右边的都比它大。然后像二分一样不断细分,缩小范围进行同样的操作。细节:让x左边的都比它小,同时让右边的都比它大。双指针算法,只要满足条件就移动指针,否则就交换两个数。像二分一样不断细分,缩小范围进行同样的操作。递归操作。原创 2023-06-18 01:02:48 · 434 阅读 · 0 评论 -
【算法】环形纸牌均分问题
但是,当我们交换两个摊点的时候,只会改变要么行要么列的状态。(感觉这个递推思想有点类似于费解的开关,每个灯能改变上下左右相邻的状态,第一行的灯只能由第二行改变,一旦第一行灯的状态确定了,则第二行、第三行......第n行的状态也就确定了。那么,1只能跟2交换以达到target,1换好之后2就只能跟3交换(因为如果1跟2又换了1就不是target了,而且说明前面做了无用功,答案一定不是最优的)。首先,我们看只有两个点的情况,在这种情况下我们选[1,2]的任何一个位置都是一样的,总和就是这段区间的长度,对吧。原创 2024-03-24 00:47:06 · 916 阅读 · 0 评论 -
【BFS】学习
只要队列里有数就弹出头结点,然后遍历头结点的四个方向,如果有点满足题目条件,就压入队列中;当使用邻接表时,DFS的时间复杂度也是O(V+E),当使用邻接矩阵时,DFS的时间复杂度也是O(V^2),其中V表示顶点,E表示边。当使用邻接矩阵时,BFS的时间复杂度为O(V^2),其中V表示顶点,E表示边。BFS先找到的一定最短,但如果是加权的路就会出现问题,就应采用Dijkstra最短路径算法解决加权路径的最短路。2.从A出发到达B的最短路径(如果数据小,20(数组行列数)以内,DFS也行。原创 2023-03-16 17:45:08 · 409 阅读 · 0 评论 -
【字符串匹配算法】KMP、哈希
C++中提供子串查询的函数可以使用类的相关方法来实现。findsubstrcomparefind函数的时间复杂度取决于字符串的长度和待查找的子串的长度。在C++标准库中,的find函数使用的是一种称为"Boyer-Moore-Horspool"算法的快速字符串搜索算法。在最坏情况下,算法的时间复杂度为O(mn),其中n是字符串的长度,m是待查找的子串的长度。这种情况发生在待查找的子串中的每个字符都与字符串进行了比较,但最终没有匹配成功。时间复杂度是不如KMP的。原创 2023-10-18 22:37:44 · 179 阅读 · 0 评论 -
【高精度算法】
【代码】【高精度算法】洛谷上写数楼梯问题,怎么都过不了,因此知道了高精度算法。int 数量级 1e9long long 数量级 1e18unsighed long long 数量级1e19原创 2023-03-26 00:02:53 · 58 阅读 · 0 评论 -
【DFS】学习
递归实现指数型枚举题目链接:92. 递归实现指数型枚举 - AcWing题库从 1∼n这 n个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3原创 2023-03-13 23:47:14 · 222 阅读 · 0 评论 -
【DP】初步学习
动态规划就是:给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法。入门思路:dfs暴力->记忆化搜索->递推DP。原创 2023-03-24 00:25:19 · 173 阅读 · 1 评论 -
【DP】学习之背包问题
完全背包 和 01背包唯一不同就在于如果当前这个物品可以装入,在下一次选择中x不用+1(因为物品是无限多的,还可以再次选择)如果正序枚举体积,就会让物品被拿多次,从而违反规则,这里m从m走到0,的原因是只让每个物品最多拿一次。但完全背包不用考虑这个问题,因为它本身就能拿多次~01 背包优化到一维 :逆序枚举体积。完全背包优化到一维 :正序枚举体积。所以完全背包优化到一维可以正序枚举。这里补个图,DFS是自顶向下推的。用一维数组代替二维数组。dp的递推是从下往上。原创 2023-05-06 21:15:31 · 397 阅读 · 0 评论 -
【2024ICPC湖北省赛】The 2024 International Collegiate Programming Contest in Hubei Province, China
模拟一下会发现,使得路径最短的能经过的点只能是2,a的最小因数,b的最小因数,ab最大公约数,注意要特判一下1。想要a*b最大,b在根号里面,所以a为1的时候a*b最大。有n个点,每次可以选择一堆点删去,然后加上这两个点的终点,求解最后的点的期望。给定a,b两个点,定义两点之间距离为lcm(a,b)。给定x和y,求解使得a*b最大的a,b,输出a,b即可。因为选每对点的可能都是相同的,所以答案就是所有点的平均数。给n个点,求出从中选出3个点能组成的三角形最小面积。枚举点然后计算面积即可。原创 2024-05-07 13:13:18 · 912 阅读 · 0 评论 -
Codeforces Round 943 (Div. 3) A~E
给定x求出使这个式子最大的y:不用想复杂直接循环枚举即可。原创 2024-05-06 16:11:59 · 363 阅读 · 0 评论 -
Codeforces Round 942 (Div. 2) A~D
给定数组ai和bi,这俩数组都是非递减的。每次操作可以在ai的前面放上任意数字w,并删去a数组末尾的元素,求最少多少次操作让ai原创 2024-05-05 20:22:58 · 885 阅读 · 0 评论 -
Educational Codeforces Round 165 (Rated for Div. 2)[A~D]
这场签到很快那会rank1400吧,但到c就写不动了,最后排名也是3000左右,可见很多人其实都不会写dp。快速签到也很重要啊!!原创 2024-05-01 00:38:51 · 681 阅读 · 1 评论 -
Codeforces Round 941 (Div. 2)(A-D)
给定n张牌,每次选k张相同的牌,把他们变成k-1张任意的牌,求最后手中最少能有几张牌。直接判断这n张牌当中有没有k张一样的牌,如果有就一定能变成最后只剩k-1张牌。如果没有k张一模一样的牌,说明一次变化都做不了,最后只能有n张牌。原创 2024-04-29 01:44:48 · 711 阅读 · 0 评论 -
【Codeforces】Codeforces Round 913 (Div. 3)
当前能走到[l,r],则下一次可以走到[l-x,r+x]。题目又要求落在第i个线段上,因此左边取max,右边取min就好了。只要维护的区间始终合法,就是满足题意的。下一次能移动到的点总跟上一次移动到的点有关,因此我们维护一个区间[l,r],涵盖能走到的点。这题看上去是很明显的二分,问题在于check函数怎么写。问题就变成了已知最多走x,怎么判断能否满足题意。其实这题当时完全能写的,还是区间的题做少了。原创 2023-12-06 15:25:42 · 469 阅读 · 3 评论