算法题解
文章平均质量分 52
算法题解
嘻·嘻
深圳技术大学中一位爱笑的同志
展开
-
力扣795.区间子数组个数 | 树状数组解法
树状数组解法,思路本质和官方题解的一次遍历做法一样。原创 2024-04-25 20:39:59 · 345 阅读 · 0 评论 -
十进制正负整数的二进制有几个1
利用树状数组的lowbit简单解决原创 2024-04-25 20:37:41 · 170 阅读 · 0 评论 -
第十四届蓝桥杯 子串简写 | 树状数组解法
树状数组解法,时间复杂度:O(nlogn),空间复杂度:O(n)原创 2024-04-22 16:38:36 · 615 阅读 · 0 评论 -
简洁易懂递归 | 力扣124.二叉树中的最大路径和
简洁易懂的递归实现,时间复杂度O(n),空间复杂度O(1)。原创 2024-04-22 15:39:36 · 257 阅读 · 0 评论 -
力扣15. 三数之和(c++解法:快排+两数之和)
三数之和(c++解法:快排+两数之和)时间O(n^2) 空间O(2n)原创 2024-04-03 18:45:08 · 406 阅读 · 0 评论 -
力扣142.环形链表II 简单遍历即可实现O(n)时间+O(1)空间
Problem: 142. 环形链表 II时间复杂度:空间复杂度:原创 2024-04-01 13:25:26 · 444 阅读 · 0 评论 -
力扣102. 二叉树的层序遍历(O(n)时间复杂度,通过queue实现简单BFS)
正常层序遍历,队列类型改一下就好:queueq; 记录节点及其层次。O(n)时间复杂度原创 2024-03-31 22:47:52 · 479 阅读 · 0 评论 -
力扣128.最长连续序列(简易代码、O(N)时间复杂度)
3、最后遍历一遍左端点列表,循环判断每个节点的右相邻节点是否存在(通过哈希表)记录该序列长度。2、然后遍历一遍哈希表,将所有左端点(左边不存在相邻节点)保存在一个列表,1、首先遍历一遍数组,用个哈希表存该节点(表示这个节点存在),原创 2024-03-31 02:04:26 · 426 阅读 · 0 评论 -
多重影分身(c++题解)
寻找字符串中的子序列有多少种(vector数组)恰好是WTW这种,可以少个循环原创 2021-12-08 15:33:23 · 306 阅读 · 1 评论 -
codeforces:B. William the Vigilant(c语言题解)
题目出自:Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)的B题原创 2021-11-29 16:37:10 · 779 阅读 · 0 评论 -
不能整除的个数(c语言)题解
组合数—容斥定理原创 2021-11-27 16:05:46 · 2299 阅读 · 0 评论 -
蓝桥杯 杨辉三角形【第十二届】【省赛】【B组】c++题解
题目:将杨辉三角的所有数从上到下,从左到右,排成一列,输入一个N,判断最早出现N是在第几个数。思路:因为“从上到下,从左到右”,因此从三角形中间划一条垂线,则N一定位于左边。然后,我们发现从右上到左下的每一条斜行(将全是1的情况暂时忽略)都存在这样的规律:【1】开头的数为C(2x,x),x从1开始递增,例如2是C(2,1),6是C(4,2)。。。【2】每一斜行的递增规律是C(2x++,x),例如6是C(4,2),10是C(5,2)。。。【3】我们可以发现例如数字6有两个,而我们想输出的是位置原创 2022-02-24 22:15:39 · 3052 阅读 · 0 评论 -
蓝桥杯 螺旋折线【第九届】【省赛】【B组】c++题解
如图所示的螺旋折线经过平面上所有整点恰好一次。 对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。 例如dis(0, 1)=3, dis(-2, -1)=9 给出整点坐标(X, Y),你能计算出dis(X, Y)吗?输入格式 X和Y 对于40%的数据,-1000 <= X, Y <= 1000 对于70%的数据,-100000 <= X, Y <= 100000 对于100%的数据, -1000原创 2022-02-24 22:13:44 · 231 阅读 · 0 评论 -
codeforces:Build the Permutation(题解)
B. Build the Permutation (构造一个有a个极大值b给极小值的排列) (题目出自Dashboard - Codeforces Round #758 (Div.1 + Div. 2) - Codeforces)原创 2021-12-12 18:26:07 · 952 阅读 · 0 评论 -
codeforces:Divide and Multiply(c语言题解)
题目出自Deltix Round, Autumn 2021 (open for everyone, rated, Div. 1 + Div. 2)的A题William has array ofnnnumbersa1,a2,…,ana1,a2,…,an. He can perform the following sequence of operationsany number of times:Pick any two items from arrayaiaiandajaj, where...原创 2021-11-29 12:54:13 · 928 阅读 · 0 评论 -
c语言做题时的点点笔记(1)QAQ
【1】scanf("%s",s) 它会读入一个不含空格、 TAB和回车符的字符串,存入字符数组s.(注意:s前面不含取址符&)如果是字符串数组char s[m] [n],可以用“scanf("%s", s[i])”读取第i个字符串。(注意,“scanf("%s", s)”遇到 空白字符会停下来。)【2】用gets读入多行数据的一个示例char c[105];while(gets(c)){ if(c[0]==EOF) break;}[3](输入带空格的字符串)利用格式符“%[原创 2021-11-24 22:50:00 · 607 阅读 · 0 评论 -
蓝桥杯 子串分值和【第十一届】【省赛】【B组】c++题解
问题描述对于一个字符串 S,我们定义 S 的分值 f(S) 为 S 中出现的不同的字符个数。例如 f("aba")=2,f("abc")=3, f("aaa")=1。现在给定一个字符串 S[0..n−1](长度为 n),请你计算对于所有 S 的非空子串 S[i..j](0≤i≤j<n),f(S[i..j])的和是多少。输入格式输入一行包含一个由小写字母组成的字符串 S。输出格式输出一个整数表示答案。样例输入ababcData样例输出28Data样原创 2022-02-24 22:11:08 · 740 阅读 · 0 评论 -
[c语言]一维数组输出杨辉(帕斯卡)三角形第n行题解
帕斯卡三角形每一行对应二项式展开系数,如:11 11 2 11 3 3 1...Input多组数据,每组一个整数1 ≤ n ≤ 1000Output帕斯卡三角第 n 行,每个数取模10^9 + 7的结果思路(直接):用一维数组将一行的每两个数相加形成下下一行的数,就要用到两个for循环,外层循环去循环i次,内层循环计算第i行的全部数。假设算到第i-1行,算第i行时,就要将数组b[]后一个和前一个相加得出新的数,比如第i行的第6位就是,第i-1行的第6位加上第5位。(...原创 2021-11-25 08:58:55 · 1474 阅读 · 0 评论 -
改革春风吹满地(填补法计算多边形面积)c语言题解
填补法求多边形面积原创 2021-11-25 12:48:31 · 231 阅读 · 0 评论 -
蓝桥杯 时间显示【第十二届】【省赛】【B组】c++题解
思路:忽略天数,直接计算小时,分钟,秒数#include<iostream>#include<algorithm>using namespace std;typedef unsigned long long ull;int main() { ull n; cin >> n;//输入的是毫秒 while (n > 86400000)//一天有86400000毫秒,直接忽略已过的天数 { n %= 86400000; } if (n..原创 2022-02-25 15:07:27 · 606 阅读 · 0 评论 -
蓝桥杯 平面切分【第十一届】【省赛】【B组】c++题解
问题描述平面上有 N 条直线,其中第 i 条直线是 y=Ai⋅x+Bi。请计算这些直线将平面分成了几个部分。输入格式第一行包含一个整数 N。以下N行,每行包含两个整数 Ai,Bi。输出格式一个整数代表答案。样例输入31 12 23 3Data样例输出6Data评测用例规模与约定对于 50 的评测用例,1≤N≤4, −10≤Ai,Bi≤10。对于所有评测用例,1≤N≤1000, −100000≤Ai,Bi≤100000。思路:【1】原创 2022-02-25 16:00:46 · 887 阅读 · 0 评论 -
蓝桥杯 日志统计【第九届】【省赛】【B组】c++题解
题目:小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是: ts id 表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。 具体来说,如果存在某个时刻T满足该帖在[T, T+D)这段时间内(注意是左闭右开区间)收到不少于K个赞,该帖就曾是"热帖"。 给定日志,请你帮助小明统计出所有曾是"热帖"的帖子编号。输入格式原创 2022-02-24 22:16:45 · 302 阅读 · 0 评论 -
迷宫问题(c++题解)bfs
迷宫问题时间限制: 1Sec 内存限制: 32MB 提交: 3085 解决: 722题目描述小明置身于一个迷宫,请你帮小明找出从起点到终点的最短路程。小明只能向上下左右四个方向移动。输入输入包含多组测试数据。输入的第一行是一个整数T,表示有T组测试数据。每组输入的第一行是两个整数N和M(1<=N,M<=100)。接下来N行,每行输入M个字符,每个字符表示迷宫中的一个小方格。字符的含义如下:‘S’:起点‘E’:终点‘-’:空地,可以通过‘#’:障碍,无法通过输原创 2022-04-05 18:56:39 · 520 阅读 · 0 评论 -
蓝桥杯 递增三元组【第九届】【省赛】【B组】c++题解
给定三个整数数组 A = [A1, A2, ... AN], B = [B1, B2, ... BN], C = [C1, C2, ... CN], 请你统计有多少个三元组(i, j, k) 满足: 1. 1 <= i, j, k <= N 2. Ai < Bj < Ck输入格式 第一行包含一个整数N。 第二行包含N个整数A1, A2, ... AN。 第三行包含N个整数B1, B2, ... BN。 第四行包含N个整数C1, C2, .原创 2022-02-25 13:56:56 · 566 阅读 · 0 评论 -
全球变暖【第九届】【省赛】【B组】c++题解(bfs)
问题描述 你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。 由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。 例如上图中的海域原创 2022-02-25 00:08:33 · 400 阅读 · 0 评论 -
奇数阶幻方(c语言)题解
幻方,由一组排放在正方形中的整数组成,其每行、每列以及每一条主对角线的和均相等。通常幻方由从1到N^2的连续整数组成,其中N为正方形的行或列的数目。因此N阶幻方有N行N列,并且所填充的数为从1到N^2题目填法:把1放在第一行正中; 按以下规律排列剩下的(n×n-1)个数:1、每一个数放在前一个数的右上一格;2、如果这个数所要放的格已经超出了顶行那么就把它放在底行,仍然要放在右一列;3、如果这个数所要放的格已经超出了最右列那么就把它放在最左列,仍然要放在上一行;4...原创 2021-11-22 22:57:15 · 2197 阅读 · 2 评论 -
人见人爱A-B(两个集合相减) (c语言)题解
Input:每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.如果n=0并且m=0表示输入的结束,不做处理。Output:针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.思路:用原创 2021-11-24 00:31:11 · 974 阅读 · 0 评论 -
A + B Problem II(高精度的加法) c语言题解
题目如下:Input:The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should n原创 2021-11-21 13:49:51 · 964 阅读 · 0 评论