自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 历年csp第一题和第二题

201912-1(报数),201912-2(回收站选址)201909-1(小明种苹果),201909-2(小明种苹果(续))201903-1(小中大),201903-2(二十四点)201812-1(小明上学),201812-2(小明放学)201809-1(卖菜),201809-2(买菜)201803-1(跳一跳),201803-2(碰撞的小球)201712-1(最小差值),201712...

2020-04-29 17:09:07 329

原创 第二十六次csp认证-寻宝!大冒险!

第二十六次csp认证-寻宝!大冒险!

2022-06-21 23:18:27 1294 1

原创 第二十五次csp认证-出行计划

由题可知对于任意一个场所需要的1.核酸期限2.进入该场所的时间点可知当需要进入一个场所时,要有这个核酸期限内的核酸检测所以可由1和2得到想要在一个特定的时间点curTime进入一个场所那你所做核酸的时间点一定要在这个区间内[ti-ci-k+1,ti-k]然后使用差分数组对上述区间进行处理即可知当前这项出行计划对于什么时间点做核酸有贡献最后使用差分数组还原出原始数组,即可得到任意一个时间点做核酸能够进入的场所个数#include<bits/stdc++.h>using nam

2022-04-02 12:00:20 1619

原创 第二十三次csp认证-非零段划分

模拟枚举去重后的每个数字然后模拟1.若当前数字化为0,当前数字左边和右边都是非0数字,那么会增加一个非零段2.若当前数字化为0,当前数字左边和右边都是0,那么就会减少一个非零段3.若当前数字化为0,左边和右边只存在一个非0数字,那么不会影响非零段个数#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; vector<int>v; int num

2021-09-28 17:34:15 2678 1

原创 第二十二次csp认证-邻域均值

#include <bits/stdc++.h>using namespace std;#define R return#define ll long long#define main WinMain#define MAX INT_MAX#define MIN INT_MIN#define vi vector<int>#define vii vector<vector<int>>#define all(x) x.begin(),x.end(

2021-06-17 08:31:22 332

原创 第二十一次csp认证-最佳阈值

第二十一次csp认证前缀和后缀思想#include <bits/stdc++.h>using namespace std;int main() { int n; cin >> n;// 存储每个阈值对应的1和0的出现次数 map<int, pair<int, int>> um; int one = 0, zero = 0; int y, re; for (int i = 0; i < n

2020-12-14 19:43:38 838 2

原创 202009-1(称检测点查询),202009-2(风险人群筛查)

#include <iostream>#include <cstdio>#include <vector>#include <algorithm>using namespace std;struct Node { int idx, dis;};bool cmp(Node p1, Node p2) { if (p1.dis != p2.dis) return p1.dis < p2.dis; e.

2020-09-30 18:02:23 548

原创 1019. 链表中的下一个更大节点

class Solution {public: vector<int> nextLargerNodes(ListNode *head) { vector<int> ret; deque<ListNode *> d; auto temp = head; while (head) { while (!d.empty() && head->val >.

2020-09-01 23:13:18 150

原创 37. 解数独

class Solution {public: bool row[9][10], col[9][10], block[9][10]; vector<pair<int, int>> pointer; bool solve = false; void dfs(int cur, vector<vector<char>> &board) { if (cur == pointer.size()) { .

2020-09-01 13:11:01 140

原创 17. 电话号码的字母组合

class Solution {public: vector<string> ret; vector<int>idx; string str; vector<string> map{{},{}, {"abc"}, {"def"}, {"ghi"}, {"j.

2020-08-30 16:14:11 92

原创 面试题 08.12. 八皇后

class Solution {public: vector<vector<string>> ret; int size; vector<string> temp; set<pair<int, int>> s; pair<int, int> p[2]{ {-1, 1}, {-1, -1}}; void dfs(int cur) {.

2020-08-30 14:44:02 125 1

原创 129. 求根到叶子节点数字之和

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int ret = 0; void recursi.

2020-08-29 22:37:41 60

原创 面试题 16.04. 井字游戏

class Solution {public: int v[110][110]; pair<bool, int> win(int size) {// 行列,对角线 for (int i = 0; i < size; i++) { int temp = v[i][0]; bool flag = true; for (int j = 1; j < size; j.

2020-08-28 17:11:49 116

原创 1382. 将二叉搜索树变平衡

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<TreeNode *> v;..

2020-08-28 17:09:13 89

原创 1038. 从二叉搜索树到更大和树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int total = 0; void preo.

2020-08-28 17:06:05 63

原创 面试题 17.12. BiNode

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode *ret = new TreeNode(.

2020-08-28 17:03:09 56

原创 201803-4(棋局评估)

//201803-4#include <bits/stdc++.h>using namespace std;vector<vector<int>> v(3, vector<int>(3));bool win(int cur) { for (int i = 0; i < 3; i++) if ((v[i][0] == cur && v[i][0] == v[i][1] && v[i][.

2020-08-26 13:22:39 139

原创 202006-1(线性分类器),202006-2(稀疏向量)

#include <bits/stdc++.h>using namespace std;struct Node { int x, y; char c;};int main() { int n, m; scanf("%d%d", &n, &m); vector<Node> v; while (n--) { Node obj; scanf("%d%d %c", &...

2020-07-20 13:01:02 978

原创 5453. 所有蚂蚁掉下来前的最后一刻

int getLastMoment(int n, vector<int> &left, vector<int> &right) { int l = 0, r = 10010; for (auto it:left) if (it > l) l = it; for (auto it:right) if (it < r) r = it; retu.

2020-07-05 14:41:07 172

原创 5452. 判断能否形成等差数列

bool canMakeArithmeticProgression(vector<int> &arr) { sort(arr.begin(), arr.end()); int val = arr[1] - arr[0]; for (int i = 2; i < arr.size(); i++) if (arr[i] - arr[i - 1] != val) return false; return true;.

2020-07-05 14:37:13 188

原创 1214. 查找两棵二叉搜索树之和

void inOrder(TreeNode *root, vector<int> &v) { if (!root) return; inOrder(root->left, v); v.emplace_back(root->val); inOrder(root->right, v);}bool twoSumBSTs(TreeNode *root1, TreeNode *root2, int target) { vecto.

2020-07-03 14:46:27 126

原创 1213. 三个有序数组的交集

vector<int> arraysIntersection(vector<int> &arr1, vector<int> &arr2, vector<int> &arr3) { map<int, int> m1; unordered_map<int, int> m2, m3; for (auto it:arr1) m1[it]++; for (auto it:.

2020-07-03 14:43:26 328

原创 108. 将有序数组转换为二叉搜索树

TreeNode *fun(vector<int> v, int left, int right) { if (left > right) return nullptr; int mid = left + ((right - left) >> 1); auto *root = new TreeNode(v[mid]); root->left = fun(v, left, mid - 1); root->ri.

2020-07-03 11:45:28 70

原创 1221. 分割平衡字符串

int balancedStringSplit(string s) { int cntOfL = 0, cntOfR = 0; int ret = 0; for (auto it:s) { if (it == 'L') cntOfL++; else if (it == 'R') cntOfR++; if (cntOfL == cntOfR) ret++, cnt.

2020-07-02 23:56:03 83

原创 378. 有序矩阵中第K小的元素

bool check(vector<vector<int>> v, int mid, int size, int k) { int l = 0, r = size - 1; int num = 0; while (r >= 0 && l < size) { if (v[r][l] <= mid) num += r + 1, l++; else r.

2020-07-02 18:31:03 74

原创 剑指 Offer 57 - II. 和为s的连续正数序列

vector<vector<int>> findContinuousSequence(int target) { vector<vector<int>> ret; vector<int> temp; int l = 1, r = 1; int total = 0; bool flag = false; while (r < target) { if (!flag) { .

2020-07-02 15:37:43 60

原创 1232. 缀点成线

bool checkStraightLine(vector<vector<int>> &coordinates) { int y = coordinates[1][1] - coordinates[0][1]; int x = coordinates[1][0] - coordinates[0][0]; for (int i = 2; i < coordinates.size(); i++) if (y * (coordina.

2020-07-02 14:03:13 64

原创 1283. 使结果不超过阈值的最小除数

int smallestDivisor(vector<int> &nums, int threshold) { int l = 1, r = 1000010; int ret = r; while (l <= r) { int m = (l + r) >> 1; long long total = 0; for (auto it:nums) total += (long l.

2020-06-30 13:23:37 173

原创 1282. 用户分组

vector<vector<int>> groupThePeople(vector<int> &groupSizes) { vector<vector<int>> ret; unordered_map<int, vector<int>> m; for (int i = 0; i < groupSizes.size(); i++) m[groupSizes[i]].e.

2020-06-30 13:20:13 90

原创 1281. 整数的各位积和之差

int subtractProductAndSum(int n) { int val1 = 1, val2 = 0; while (n) { val1 *= n % 10; val2 += n % 10; n /= 10; } return val1 - val2;}

2020-06-30 12:57:07 84

原创 1288. 删除被覆盖区间

static bool cmp(pair<int, int> p1, pair<int, int> p2) { if (p1.first != p2.first) return p1.first < p2.first; else return p1.second < p2.second;}int removeCoveredIntervals(vector<vector<int>> &i.

2020-06-29 23:32:34 117

原创 1287. 有序数组中出现次数超过25%的元素

int findSpecialInteger(vector<int> &arr) { unordered_map<int, int> m; int size = arr.size() * 0.25; for (auto it:arr) m[it]++; for (auto it:m) if (it.second > size) return it.first; .

2020-06-29 23:29:32 118

原创 240. 搜索二维矩阵 II

bool searchMatrix(vector<vector<int>> &matrix, int target) { if (matrix.empty()) return false; for (int i = 0; i < matrix.size(); i++) if (binary_search(matrix[i].begin(), matrix[i].end(), target)) re.

2020-06-29 22:53:04 295 1

原创 74. 搜索二维矩阵

bool searchMatrix(vector<vector<int>> &matrix, int target) { if(matrix.empty()) return false; int l = 0, r = matrix.size() * matrix[0].size() - 1; while (l <= r) { int mid = l + ((r - l) >> 1); .

2020-06-28 22:48:45 84

原创 581. 最短无序连续子数组

int findUnsortedSubarray(vector<int> &nums) { vector<int> temp = nums; sort(temp.begin(), temp.end()); int l = temp.size(), r = -1; for (int i = 0; i < nums.size(); i++) if (nums[i] != temp[i]) l = mi.

2020-06-28 18:52:46 60

原创 5449. 检查数组对是否可以被 k 整除

bool canArrange(vector<int> &arr, int k) { vector<int> v(k); for (auto it:arr) v[((it % k) + k) % k]++; for (int i = 0; i < k; i++) if (i == 0) { if (v[0] % 2 != 0) return false;.

2020-06-28 13:36:32 195

原创 5448. 判断路径是否相交

bool isPathCrossing(string path) { map<pair<int, int>, int> m; pair<int, int> p = make_pair(0, 0); m[p] = 1; for (auto it:path) { if (it == 'N') p.second++; else if (it == 'S') p.se.

2020-06-28 13:31:36 427

原创 5432. 去掉最低工资和最高工资后的工资平均值

double average(vector<int> &salary) { sort(salary.begin(), salary.end()); double val = 0; int size = salary.size(); for (int i = 1; i < salary.size() - 1; i++) val += salary[i]; return val / (size - 2);}

2020-06-28 09:32:03 163

原创 5434. 删掉一个元素以后全为 1 的最长子数组

int longestSubarray(vector<int> &nums) { vector<int> v; for (int i = 0; i < nums.size(); i++) if (nums[i] == 0) v.emplace_back(i); if (v.empty()) return nums.size() - 1; int count = 0; f.

2020-06-28 00:05:28 204

原创 5433. n 的第 k 个因子

int kthFactor(int n, int k) { int idx = 1; vector<int> v; while (true) { if (n % idx == 0) v.emplace_back(idx); if (v.size() == k || idx++ == n) break; } if (v.size() < k) retur.

2020-06-28 00:01:02 128

空空如也

空空如也

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

TA关注的人

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