![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++刷题
文章平均质量分 54
{∞}
自然选择,前进四!
展开
-
【c++刷题Day4】前缀和&差分
同时FJ给出了R(0≤R≤100000)条记录信息,记录的格式是“奶牛17能看到奶牛34”,这条记录的意思是,奶牛34的高度至少与奶牛17的高度一样,而且从奶牛17到奶牛34之间的奶牛的高度严格小于奶牛17的高度。FJ的N(1 ≤ N ≤ 100000) 头奶牛排成一排编号为1到N。每头奶牛都有一个身高,用一个正整数表示。你已经知道了最高的奶牛的高度是H(1≤H≤10^6)以及该奶牛的编号i.对于每一个操作(i, j),可以选择让i,j太高,或者将[i+1,j-1]-1,显然选择2,差分处理即可。...原创 2022-08-18 10:18:54 · 192 阅读 · 0 评论 -
【c++刷题Day4】前缀和&差分
某校大门外长度为 lll 的马路上有一排树,每两棵相邻的树之间的间隔都是 111 米。我们可以把马路看成一个数轴,马路的一端在数轴 000 的位置,另一端在 lll 的位置;数轴上的每个整数点,即 0,1,2,…,l0,1,2,\dots,l0,1,2,…,l,都种有一棵树。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。接下来 mmm 行,每行两个整数 u,vu, vu,v,表示一个区域的起始点和终止点的坐标。输出一行一个整数,表示将这些树都移走后,马路上剩余的树木数量。...原创 2022-08-18 10:11:01 · 86 阅读 · 0 评论 -
【c++提高1】拓扑排序
大纲大纲1.引入2.Kahn算法3.DFS求拓扑排序4.例题1.引入:对于一个有向无环(V,E)来说,其拓扑排序是G中所有顶点的一种线性次序,该次序满足如下条件:如果图G包含边(u,v) ,则节点u在拓扑排序中处于v的前面(如果图G包含环路,则不可能排出一个线性次序)。注意:拓扑排序不是唯一的。2.Kahn算法算法思想:每次找到一个入度为0的顶点,删除该顶点及其所有的出弧。【Kahn判断环】通过Kahn算法判断图中是否有环。......原创 2022-08-17 11:32:01 · 382 阅读 · 0 评论 -
【c++刷题Day3】专题6前缀和&差分T2
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2。行,每行包含四个整数 x1,y1,x2,y2。,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。−1000≤矩阵内元素的值≤1000。第一行包含三个整数 n,m,q。行,每行输出一个询问的结果。这是C++刷题的Day3。个整数,表示整数矩阵。...原创 2022-08-16 20:05:11 · 210 阅读 · 2 评论 -
【c++刷题Day3】专题6前缀和&差分T1
定义数组s[i]表示[1,i]的和,s[i]可以通过转移状态s[i-1]加上a[i]即可,获取[l,r]就是s[r]-s[l-1]−1000≤数列中元素的值≤1000。对于每个询问,输出原序列中从第 l。个询问,每个询问输入一对 l,r。行,每行包含两个整数 l 和 r。行,每行输出一个询问的结果。,表示一个询问的区间范围。这是C++刷题的Day3。第一行包含两个整数 n。个整数,表示整数数列。...原创 2022-08-16 20:01:17 · 128 阅读 · 0 评论 -
【c++刷题Day3】专题5数组标记&哈希T3
给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2]对于每个询问输出一个结果,如果两个字符串子串完全相同则输出 Yes,否则输出 No。的字符串,字符串中只包含大小写英文字母和数字。行,每行包含四个整数 l1,r1,l2,r2。这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。,表示一次询问所涉及的两个区间。,表示字符串长度和询问次数。第二行包含一个长度为 n。注意,字符串的位置从 1。...原创 2022-08-16 19:55:36 · 129 阅读 · 0 评论 -
【c++刷题Day3】专题5数组标记&哈希T2
某校大门外长度为 lll 的马路上有一排树,每两棵相邻的树之间的间隔都是 111 米。我们可以把马路看成一个数轴,马路的一端在数轴 000 的位置,另一端在 lll 的位置;数轴上的每个整数点,即 0,1,2,…,l0,1,2,\dots,l0,1,2,…,l,都种有一棵树。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。接下来 mmm 行,每行两个整数 u,vu, vu,v,表示一个区域的起始点和终止点的坐标。输出一行一个整数,表示将这些树都移走后,马路上剩余的树木数量。...原创 2022-08-16 19:47:31 · 118 阅读 · 0 评论 -
【c++刷题Day3】专题5数组标记&哈希T1
他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和?对于 100%的数据,3 ≤ n ≤ 2000,测验题给出的正整数大小不超过 1,000,000。由 1+2=3,1+3=4,故满足测试要求的答案为 2。枚举a[i],a[j],a[k],判断a[i]+a[j]是否=a[k],时间O(N^3)输入共两行,第一行包含一个整数 n,表示测试题中给出的正整数个数。枚举a[i],a[j],接下来判断a[i]+a[j]是否在数组中。...原创 2022-08-16 19:38:56 · 117 阅读 · 0 评论 -
【c++刷题Day3】专题4T5
他们在一块很大的矩形的土地上进行勘探,然后把这块土地划分成多个正方形的方格,从而构成了一个网格。如果两个oil pocket是相连的(相连的定义是两个方格朝横、竖或对角线方向相连),那么它们同属于一个oil deposit。接下来m行,每行n个字符,一个字符表示一个方格,如果字符是“*”表示这个方格没有石油,字符是“@”表示是一个oil pocket。第一行是空格隔开的两个整数m和n,表示网格是m行 n列(1≤m≤100,1≤n≤100)输入包含多组测试数据。每组测试数据描述的是一个m*n的网格。...原创 2022-08-16 19:30:58 · 240 阅读 · 0 评论 -
【c++刷题Day3】专题4T4
农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0≤N≤100000),牛位于点K(0≤K≤100000)。把每一个情况当成一个图的节点,但是这个有无限的情况,不能用dfs,所以就用bfs图的遍历。假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?1、从X移动到X-1或X+1,每次移动花费一分钟。一个整数,农夫抓到牛所要花费的最小分钟数。2、从X移动到2*X,每次移动花费一分钟。这是C++刷题的Day3。...原创 2022-08-16 19:27:45 · 183 阅读 · 0 评论 -
【c++刷题Day3】专题4T3
某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击。在古老的传说中,有两个军团,一个叫天灾,一个叫近卫。其中近卫军团在1号隘口,天灾军团在n号隘口。由于n的值比较大(n...原创 2022-08-16 19:23:44 · 174 阅读 · 0 评论 -
【c++刷题Day3】专题3T2
小科森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,“.”和"#“,”.“前者表示可以通行,”#"表示不能通行。同时当小科处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,小科想要从点A走到点B,问在不走出迷宫的情况下能不能办到。再接下来一行是4个整数ha, la, hb, lb,描述A处在第ha行, 第la列,B处在第hb行, 第lb列。第1行是一个正整数n (1 ≤ n ≤ 100),表示迷宫的规模是n * n的。...原创 2022-08-16 19:19:59 · 794 阅读 · 1 评论 -
【c++刷题Day2】专题4搜索T1
由1~n组成的所有不重复的数字序列,每行一个序列。按照字典序从小到大输出每种排列,每个数字保留5个常宽(printf(“%5d”, x), 可以将x按照保留5个长宽输出)。输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。定义数组a存储答案,当当前填数位置>n时,输出a数组即可。dfs每一个位置,定义数组book标记一个数有没有用过。这是C++刷题的Day2。...原创 2022-08-15 17:40:09 · 56 阅读 · 0 评论 -
【c++刷题Day2】专题3栈与队列&单调栈与单调队列
实时的维护一个单调的内部序列,最后队首就是当前的最小值&最大值。这是C++刷题的Day2。原创 2022-08-15 17:27:31 · 134 阅读 · 0 评论 -
【c++刷题Day2】专题3栈与队列&单调栈与单调队列T4
用对于H[i],要看它最多能延申到哪里,可以用单调栈维护即可。这是C++刷题的Day2。原创 2022-08-15 17:21:15 · 115 阅读 · 0 评论 -
【c++刷题Day2】专题3栈与队列&单调栈与单调队列T3
小科上了初中,开学的第一周是新生军训,小科的教官在进行队列训练时方法非常特殊。一开始N名学生按照顺序从1到N开始编号并排成一个横队。训练时按照如下的规则:从队头开始1至2报数,所有报到2的人出列,剩下的向编号小的方向靠拢,然后再从头开始进行1至3的报数,所有报到3的人出列,剩下的向编号小的方向靠拢,然后循环的进行1到2报数…1到3报数,直至剩余的人数不超过3人为止。最后请你确定一下最终队伍中剩下的人的编号是多少。第一行一个整数T,表示测试数据的组数。对于每组数据,输出一行,队伍中最终剩余的同学的编号。...原创 2022-08-15 17:15:04 · 174 阅读 · 0 评论 -
【c++刷题Day2】专题3栈与队列&单调栈与单调队列T2
小科在你的帮助下,破解了第一道密码门,正要往前走,突然又出现了一个密码门,门上有一个算式,其中只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”,求出的值就是密码。小科数学学得不好,还需你帮他的忙。(“/”用整数除法)这是C++刷题的Day2。共1行,为一个算式。使用栈进行表达式计算。......原创 2022-08-15 17:10:05 · 117 阅读 · 0 评论 -
【c++刷题Day2】专题3栈与队列&单调栈与单调队列T1
当type = 1时,表示该次操作为push操作,val表示进入的数字。当type=2时,表示该次操作为pop操作,val代表出来的数字。输出改组数据对应的线性结构,”Stack” 或者 “Queue”。模拟栈和队列,每次检查栈的栈顶元素和队列的队头元素是否匹配即可。第一行,一个整数n,代表操作的次数。给出一个线性结构的进出顺序,判定这个结构是栈还是队列。不同的是,栈是”先进后出”,而队列则是”先进先出”。第一行输入一个整数T,代表有T组测试数据,T......原创 2022-08-15 17:05:32 · 295 阅读 · 0 评论 -
【c++刷题Day2】专题2T4
题目是这样的:给定n对小括号,问给出的一个括号序列是否为一种合理的括号序列,以及n对小括号能够组成的合理括号序列有多少种?对于给定的序列是否是合理的,小丁一眼就看出来了,但是对于n对小括号,有多少种合理的括号序列,小丁就有点被难到了,你能帮助小丁处理这个问题么?如果输入的括号序列是合理的,输出”YES”,否则输出”NO”。2对括号只有2种合理的括号序列,分别为:()()与(())。比如,给定两对小括号,那么:()()与(())都是合理的。很明显()是合理的,1对括号只有1种合理的括号序列为:()...原创 2022-08-15 16:59:20 · 121 阅读 · 0 评论 -
【c++刷题Day2】专题2线性DPT3
有N个同学一起去春游,大家排成一个纵队,到达目的地后,要把N个同学按照原序列分成若干小组,也就是将这个纵队切分成若干小组,连续的可以分为一组。要求:性别一致,或者男女人数差不超过M。求满足要求的情况下,至少需要分多少组。找到一个满足要求的j(满足要求定义为[j+1,i]可以分为一组)的f[j]的最小值+1即可。之后N行,每行一个整数,依次给出队伍中个同学的性别。1表示性别为男,2表示性别为女。一个整数,表示最小分组数。这是C++刷题的Day2。...原创 2022-08-15 16:53:14 · 113 阅读 · 0 评论 -
【c++刷题Day2】专题2线性DPT2
欢乐谷中有若干个宝石排成一行,这些宝石,有些是正能量,有些是负能量。相邻的若干个宝石可以合并到一起,合并的时候发出能量,能量值为这些合并在一起宝石各自能量之和。枚举左端点和右端点,接下来直接通过前缀和数组获取总能量值,取max,时间复杂度:O(N^2),超时。第二行,n个整数,分别表示n个宝石各自的能量xi(-1000......原创 2022-08-15 10:57:32 · 154 阅读 · 0 评论 -
【c++刷题Day2】专题2线性DPT1
f[i]表示以i结尾的最长上升子序列的长度,那么对于a[i],如果要接到j(0原创 2022-08-15 10:47:07 · 110 阅读 · 0 评论 -
【c++刷题Day2】专题1背包T4
这是C++刷题的Day2。bitset+优先队列。原创 2022-08-15 10:32:59 · 3222 阅读 · 0 评论 -
【c++刷题Day1】专题1T3
多组数据,每组数据前两个数字为n,m。n表示硬币种类数,m为最大面额,之后前n个数为每种硬币的面额,后n个数为相应每种硬币的个数。(n原创 2022-08-14 22:39:11 · 114 阅读 · 0 评论 -
【c++刷题Day1】专题1背包T2
改变顺序, 增长快的放在后面更划算。这是c++刷题的Day1。原创 2022-08-14 22:32:06 · 586 阅读 · 0 评论 -
【c++刷题Day1】专题1背包T1
这是背包专题的T1📣。原创 2022-08-14 22:19:43 · 163 阅读 · 0 评论