自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [AtCoder Beginner Contest 396] E - Min of Restricted Sum

【代码】[AtCoder Beginner Contest 396] E - Min of Restricted Sum。

2025-03-09 15:41:18 186

原创 [AtCoder Beginner Contest 396] F - Rotated Inversions

【代码】[AtCoder Beginner Contest 396] F - Rotated Inversions。

2025-03-09 13:33:55 210

原创 倍增的常见应用(求区间最大值)

给定一个长度为N的数组a,并做M次区间查询,询问区间[L, R]的最大值,并且a[i](1 <= i <= N)的值在此过程中不会发生改变,使用倍增的方法可以提供 O(NlogN) 的预处理时间复杂度、O(1) 的查询时间复杂度。- 1] 的最大值,f[i + (1 << j - 1)][j - 1] 表示的是区间 [i + 2。- 1]的最大值,再将两个区间的最大值取一个最大值,即可得到区间[i, i + 2。事实上f[i][j - 1]表示的是区间 [i, i + 2。

2025-01-22 11:13:15 760

原创 线段树的常见应用

2、查询当前数列中末尾L个数中的最大值。1、在数列末尾插入一个数。

2025-01-15 11:40:49 223

原创 树状数组常见应用

数组a的前缀和: S = a。2、求出某区间每一个数的和。1、将某区间每一个数加上x。1、将某区间每一个数加上x。2、求出某区间每一个数的和。则在代码中S可表示为(1、将某一个数加上x。2、求出某一个数的值。

2025-01-14 08:00:47 850

原创 AtCoder Beginner Contest 357 C - Sierpinski carpet

【代码】AtCoder Beginner Contest 357 C - Sierpinski carpet。

2024-06-13 23:59:02 529

原创 AtCoder Beginner Contest 146 C - Buy an Integer

Time Limit: 2 sec / Memory Limit: 1024 MBScore : 300 pointsTakahashi has come to an integer shop to buy an integer.The shop sells the integers from 1 through 10910^9109. The integer N is sold for A×N+B×d(N) yen (the currency of Japan), where d(N) is the nu

2024-04-24 01:39:30 1065 1

原创 不连续1的子串(中山大学考研机试题)

一个整数,表示结果。

2023-07-09 22:39:09 455

原创 数字反转(升级版)

SEO。

2023-01-07 17:00:23 582

原创 6266. 使用质因数之和替换后可以取到的最小值

注意,如果 n 能够被某个质因数多次整除,则在求和时,应当包含这个质因数同样次数。8 = 2 * 2 * 2 ,所以 n 替换为 2 + 2 + 2 = 6。15 = 3 * 5 ,所以 n 替换为 3 + 5 = 8。6 = 2 * 3 ,所以 n 替换为 2 + 3 = 5。请你将 n 的值替换为 n 的 质因数 之和,重复这一过程。解释:最开始,n = 15。5 是 n 可以取到的最小值。3 是 n 可以取到的最小值。返回 n 可以取到的最小值。解释:最开始,n = 3。

2022-12-18 21:00:01 628

原创 2022 CCF CSP-J2 解密

给定一个正整数 k,有 k 次询问,每次给定三个正整数。第一行一个正整数 k,表示有 k 次询问。接下来 k行,第 i 行三个正整数。为使输出统一,你应当保证。

2022-11-09 02:13:42 747

原创 P1161 开灯

开灯

2022-09-24 12:03:00 773

转载 爱因斯坦的“读书会“

爱因斯坦的“读书会”

2022-09-21 18:52:28 169

原创 AtCoder C - Submask

C - Submask

2022-09-21 01:04:35 312 1

原创 AcWing 4612. 去掉0

我们希望字符串中的所有 1 能够形成一个连续的子串,例如,字符串 0、1、00111、01111100 均满足此条件,而字符串 0101、100001、11111111111101 均不满足此条件。你可以从字符串中删除一些(也可以不删)0,使得字符串满足上述条件。每组数据输出一行结果,一个整数,表示必须删除的最小 0 数量。给定一个字符串 s,其中的每个字符要么是 1,要么是 0。所有测试点满足 1≤T≤100,1≤|s|≤100。请问,你必须删除的最小 0 数量是多少。

2022-09-15 23:40:54 233

原创 2047. 句子中的有效单词数

如果一个token同时满足下述条件,则认为这个token是一个有效单词仅由小写字母、连字符和/或标点(不含数字)组成。至多一个连字符‘-’。如果存在,连字符两侧应当都存在小写字母(“a-b”是一个有效单词,但“-ab”和“ab-”不是有效单词)。至多一个标点符号。如果存在,标点符号应当位于token的末尾。这里给出几个有效单词的例子”和“!”。给你一个字符串sentence,请你找出并返回sentence中有效单词的数目。......

2022-07-16 18:52:53 194

原创 3554. 二进制

北京邮电大学考研机试题

2022-07-06 16:06:33 331

原创 5219. 每个小孩最多能分到多少糖果

题目描述给你一个 下标从 0 开始 的整数数组 candies 。数组中的每个元素表示大小为 candies[i] 的一堆糖果。你可以将每堆糖果分成任意数量的 子堆 ,但 无法 再将两堆合并到一起。另给你一个整数 k 。你需要将这些糖果分配给 k 个小孩,使每个小孩分到 相同 数量的糖果。每个小孩可以拿走 至多一堆 糖果,有些糖果可能会不被分配。返回每个小孩可以拿走的 最大糖果数目 。示例 1:输入:candies = [5,8,6], k = 3输出:5解释:可以将 candies[1] 分

2022-04-03 15:27:17 230

原创 蓝桥杯A组 迷宫

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。下图给出了一个迷宫的平面图,其中标记为 11 的为障碍,标记为 00 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按 DRRURRDDDR 的顺序通过迷宫, 一共 1010 步。其中 D、U、L、RD、U、L、R 分别表示向下、向上、向左、向右走。 对于下面这个更复杂的

2022-03-31 01:34:26 158

原创 C - Collision 2

题目描述题目链接C++代码#include<bits/stdc++.h>using namespace std;#define fi first#define se second#define pb push_backtypedef long long LL;typedef pair<int, int> PII;unordered_map<int, vector<pair<int, char>>> point;int

2022-03-15 21:13:31 552

原创 两整数之和

题目描述给你两个整数 a 和 b ,不使用 运算符 + 和 - ​​​​​​​,计算并返回两整数之和。示例 1:输入:a = 1, b = 2输出:3示例 2:输入:a = 2, b = 3输出:5提示:-1000 <= a, b <= 1000C++代码class Solution {public: int getSum(int a, int b) { if(! a) return b; int sum = (a ^ b), ca

2022-03-11 20:08:20 1315 1

原创 C - 1111gal password

题目描述题目链接C++代码#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 10;const int mod = 998244353;int f[N][11];int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; for(int j = 1; j <= 9; j ++

2022-03-06 20:29:39 1567

原创 713. 乘积小于K的子数组

给定一个正整数数组 nums和整数 k 。请找出该数组内乘积小于 k 的连续的子数组的个数。示例 1:输入: nums = [10,5,2,6], k = 100输出: 8解释: 8个乘积小于100的子数组分别为: [10], [5], [2], [6], [10,5], [5,2], [2,6], [5,2,6]。需要注意的是 [10,5,2] 并不是乘积小于100的子数组。示例 2:输入: nums = [1,2,3], k = 0输出: 0提示:1 <= nums.leng

2022-03-04 20:24:39 312

原创 560. 和为 K 的子数组

题目描述给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:2提示:1 <= nums.length <= 2 * 10410^4104-1000 <= nums[i] <= 1000-10710^7107 <= k <= 10710^7107C++代码class Solu

2022-03-04 19:28:56 342

原创 D - Sequence Query

题目描述题目链接思路Online Solution使用STL中的multisetC++代码#include<bits/stdc++.h>using namespace std;using LL = long long;multiset<LL> S;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int tt; cin >> tt; while(tt --){ i

2022-02-28 13:42:54 254

原创 LeetCode 318. 最大单词长度乘积

给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 。示例 1:输入:words = [“abcw”,“baz”,“foo”,“bar”,“xtfn”,“abcdef”]输出:16解释:这两个单词为 “abcw”, “xtfn”。示例 2:输入:words = [“a”,“ab”,“abc”,“d”,“cd”,“bcd”,“abcd”]输出:4解释:这

2022-02-23 16:05:20 242

原创 AtCoder C - Jumping Takahashi

题目描述题目链接C++代码#include<bits/stdc++.h>#define pb push_back#define rep(i, a, b) for(int i = a; i < b; i ++)#define REP(i, a, b) for(int i = a; i <= b; i ++)#define fi first#define se second#define mp make_pair#define SZ(x) ((int)(x).size

2022-02-21 00:08:47 711

原创 802. 找到最终的安全状态

题目描述题目链接C++代码#define pb push_backclass Solution {public: vector<int> eventualSafeNodes(vector<vector<int>>& graph) { int n = graph.size(); vector<vector<int>> g(n); vector<int> d(n);/

2022-02-20 14:40:46 255

原创 112. 路径总和

题目描述题目链接C++代码class Solution {public: bool hasPathSum(TreeNode* root, int sum) { if(! root) return false; if(! root -> left && ! root -> right) return root -> val == sum; if(root -> left && hasPat

2022-02-20 10:52:33 369

原创 C. digitnum

题目描述题目链接C++代码#include<bits/stdc++.h>using namespace std;using LL = long long;const int mod = 998244353;LL Pow(LL n, int k){ LL res = 1; while(k){ if(k & 1) res *= n; k >>= 1; n *= n; } return res;}void solve(LL n){ str

2022-02-20 03:19:31 428

原创 E - Subtree K-th Max

题目描述题目链接C++代码#include<bits/stdc++.h>#define pb push_backusing namespace std;const int N = 1e5 + 10;vector<int> e[N], ans[N]; vector<int> X(N);void dfs(int u, int fa){ vector<int> order; order.pb(X[u]); for(auto it : e[

2022-02-20 00:35:34 496

原创 2165. 重排数字的最小值

给你一个整数 num 。重排 num 中的各位数字,使其值 最小化 且不含 任何 前导零。返回不含前导零且值最小的重排数字。注意,重排各位数字后,num 的符号不会改变。示例 1:输入: num = 310输出: 103解释: 310 中各位数字的可行排列有:013、031、103、130、301、310 。不含任何前导零且值最小的重排数字是 103 。示例 2:输入:num = -7605输出:-7650解释:-7605 中各位数字的部分可行排列为:-7650、-6705、-

2022-02-17 15:22:09 451

原创 红与黑(BFS解法)

有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻(上下左右四个方向)的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入格式输入包括多个数据集合。每个数据集合的第一行是两个整数 W 和 H,分别表示 x 方向和 y 方向瓷砖的数量。在接下来的 H 行中,每行包括 W 个字符。每个字符表示一块瓷砖的颜色,规则如下1)‘.’:黑色的瓷砖;2)‘#’:红色的瓷砖;3)‘@’:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合

2022-02-13 16:35:15 192

原创 1716. 计算力扣银行的钱

Hercy 想要为购买第一辆车存钱。他 每天 都往力扣银行里存钱。最开始,他在周一的时候存入 1 块钱。从周二到周日,他每天都比前一天多存入 1 块钱。在接下来每一个周一,他都会比 前一个周一 多存入 1 块钱。给你 n ,请你返回在第 n 天结束的时候他在力扣银行总共存了多少块钱。示例 1:输入:n = 4输出:10解释:第 4 天后,总额为 1 + 2 + 3 + 4 = 10 。示例 2:输入:n = 10输出:37解释:第 10 天后,总额为 (1 + 2 + 3 + 4 + 5

2022-02-13 11:15:32 242

原创 1863. 找出所有子集的异或总和再求和

一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。例如,数组 [2,5,6] 的 异或总和 为 2 XOR 5 XOR 6 = 1 。给你一个数组 nums ,请你求出 nums 中每个 子集 的 异或总和 ,计算并返回这些值相加之 和 。注意:在本题中,元素 相同 的不同子集应 多次 计数。数组 a 是数组 b 的一个 子集 的前提条件是:从 b 删除几个(也可能不删除)元素能够得到 a 。示例 1:输入:nums = [1,3]输出:6

2022-02-08 15:10:26 822

原创 1518. 换酒问题

小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒。你购入了 numBottles 瓶酒。如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的。请你计算 最多 能喝到多少瓶酒。示例 1:输入:numBottles = 9, numExchange = 3输出:13解释:你可以用 3 个空酒瓶兑换 1 瓶酒。所以最多能喝到 9 + 3 + 1 = 13 瓶酒。示例 2:输入:numBottles = 15, numExchange = 4输出:19解释:你可以用 4 个空酒瓶

2022-02-08 12:47:13 481

原创 1544. 整理字符串

给你一个由大小写英文字母组成的字符串 s 。一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件:若 s[i] 是小写字符,则 s[i+1] 不可以是相同的大写字符。若 s[i] 是大写字符,则 s[i+1] 不可以是相同的小写字符。请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。请返回整理好的 字符串 。题目保证在给出的约束条件下,测试样例对应的答案是唯

2022-02-04 13:08:25 114

原创 1588. 所有奇数长度子数组的和

题目描述给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。子数组 定义为原数组中的一个连续子序列。请你返回 arr 中 所有奇数长度子数组的和 。示例 1:输入:arr = [1,4,2,5,3]输出:58解释:所有奇数长度子数组和它们的和为:[1] = 1[4] = 4[2] = 2[5] = 5[3] = 3[1,4,2] = 7[4,2,5] = 11[2,5,3] = 10[1,4,2,5,3] = 15我们将所有值求和得到 1 + 4 + 2 +

2022-01-12 14:48:31 331

原创 A. Robot Cleaner

Problem StatementA robot cleaner is placed on the floor of a rectangle room, surrounded by walls. The floor consists of n rows and m columns. The rows of the floor are numbered from 1 to n from top to bottom, and columns of the floor are numbered from 1 t

2022-01-11 22:28:06 472

转载 1854.人口最多的年份(LeetCode)

题目描述给你一个二维整数数组 logs ,其中每个 logs[i] = [birthi, deathi] 表示第 i 个人的出生和死亡年份。年份 x 的 人口 定义为这一年期间活着的人的数目。第 i 个人被计入年份 x 的人口需要满足:x 在闭区间 [birthi, deathi - 1] 内。注意,人不应当计入他们死亡当年的人口中。返回 人口最多 且 最早 的年份。示例1:输入:logs = [[1993,1999],[2000,2010]]输出:1993解释:人口最多为 1 ,而 1993

2022-01-08 01:20:40 3746 1

空空如也

空空如也

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

TA关注的人

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