ICode9

精准搜索请尝试: 精确搜索
  • 题解 - CF17152022-08-22 09:30:51

    C. Monoblock 先考虑算出修改前的答案。这明显可以增量法 \(O(n)\)。修改的时候先考虑把这里断开,然后再考虑和左右两边连上(大概三种情况,随便讨论) D. 2+ doors 完了,口胡假了。 显然这个东西可以按位考虑,然后变成01,只用写个2-sat就完事了。 E. Long Way Home 哦,这个玩意好像有决策单

  • Maximum Segment Sum After Removals2022-08-21 19:34:15

    Maximum Segment Sum After Removals You are given two 0-indexed integer arrays $nums$ and $removeQueries$, both of length $n$. For the $i^{th}$ query, the element in $nums$ at the index $removeQueries[i]$ is removed, splitting $nums$ into different segment

  • C++之vector2022-08-21 13:02:28

      一、标准库函数 1. 构造数组  ——参考博客   一维数组构造: // 构造一维数组 vector<int> vec(n); // n为vec长度,默认所有值为0 vector<int> vec(n, 1); // 所有值设为1   二维m*n数组构造: // 构造二维维数组 vector<int> tmp(n); // n为vec长度,默

  • 单调栈模板2022-08-21 11:04:15

    力扣503 class Solution { public: vector<int> nextGreaterElements(vector<int>& nums) { int n = nums.size(); vector<int> ret(n, -1); stack<int> stk; for (int i = 0; i < n * 2 - 1; i++) {

  • [Google] LeetCode 2115 Find All Possible Recipes from Given Supplies2022-08-21 00:03:54

    You have information about n different recipes. You are given a string array recipes and a 2D string array ingredients. The \(i\)-th recipe has the name recipes[i], and you can create it if you have all the needed ingredients from ingredients[i]. Ingred

  • 56. 合并区间2022-08-20 23:32:58

    56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。   示例 1: 输入:intervals = [[1,3],[2,6],[8,10],[15,18]] 输出:[[1,6],[8,10]

  • Vector为什么是线程安全的?2022-08-20 15:02:01

    因为官方在涉及线程不安全的操作上都加了synchronized关键字,相当于加了一把锁; 这种线程安全不是绝对的,因为这种方式是方法级的,添加和删除的方法还是可以同时进行,可能存在添加时,找到了数组下标,但是进行添加时,数组下标已经被删除了,此时会有数组越界异常; 所以使用Vector做复杂操作的

  • C# 使用SIMD向量类型加速浮点数组求和运算(1):使用Vector4、Vector<T>2022-08-20 12:00:09

    作者: 目录一、缘由二、使用向量类型2.1 基本算法2.2 使用大小固定的向量(如 Vector4)2.2.1 介绍2.2.2 用Vector4编写浮点数组求和函数2.3 使用大小与硬件相关的向量(如 Vector<T>)2.3.1 介绍2.2.1.1 使用经验2.3.2 用 Vector<T> 编写浮点数组求和函数三、搭建测试程序3.1 主测试代码(Be

  • 图的存储2022-08-20 00:02:26

    图的存储   邻接矩阵   它是利用矩阵的二维结构,使其中的一维代表其中一个端点,另一维代表另一个端点。     scanf("%d",&m); memset(G,0,sizeof(G)); for(int i=1;i<=m;++i) { scanf("%d%d",&x,&y); G[x][y]=G[y][x]=1;//无向图 }     缺点:空间占用太大,

  • 8.192022-08-19 21:32:47

    CF1720D2 题意: 给定序列\(A\),求\(A\)的最长子序列\(B\),满足\(a_p\oplus p+1<a_{p+1}\oplus p\) \(n\leq 3*10^5,0\leq a_i\leq 10^9\) 题解: 枚举两边的值从高位到地位有多少位相等,对于前\(k\)位来说,有: \(a_p\oplus p+1=a_{p+1}\oplus p\) 这样就可以把不等号变成等号,然后两边同时

  • 1094. 拼车2022-08-18 22:04:32

      labuladong 题解思路 难度中等199收藏分享切换为英文接收动态反馈 车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向) 给定整数 capacity 和一个数组 trips ,  trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 

  • 1109. 航班预订统计2022-08-18 21:35:02

      labuladong 题解思路 难度中等391收藏分享切换为英文接收动态反馈 这里有 n 个航班,它们分别从 1 到 n 进行编号。 有一份航班预订表 bookings ,表中第 i 条预订记录 bookings[i] = [firsti, lasti, seatsi] 意味着在从 firsti 到 lasti (包含 firsti 和 

  • 145.binary-tree-postorder-traversal 二叉树的后序遍历2022-08-18 11:03:33

    对比前序遍历的"中左右",后序遍历是"左右中",颠倒一下就是"中右左",所以可以参照前序遍历的迭代法来写迭代遍历。 #include <algorithm> #include <stack> #include <vector> using std::stack; using std::vector; class Solution { public: vector<int> postord

  • 递推递归与排列组合2022-08-17 00:32:00

    递推递归与排列组合 说明 排列组合 排列组合问题在暴力枚举的情况一般有3种情况 我们在此记个数为N 情况一:打印n个数的全排列: \[N = n! \] 情况二:打印n个数中任意m个数的全排列 \[N = A_{n}^{m} = \frac{n!}{(n-m)!} \] 情况三:打印n个数中任意m个数的组合 \[N = C_{n}^{m} =

  • acwing2022秋招每日一题 1282. 用户分组2022-08-17 00:02:08

    题目 有 n 个人被分成数量未知的组。每个人都被标记为一个从 0 到 n - 1 的唯一ID 。 给定一个整数数组 groupSizes ,其中 groupSizes[i] 是第 i 个人所在的组的大小。例如,如果 groupSizes[1] = 3 ,则第 1 个人必须位于大小为 3 的组中。 返回一个组列表,使每个人 i 都在一个

  • 高精度a+b2022-08-16 13:00:26

    高精度a+b acwing3596.a+b 存在vector< int >中去,倒着存,低位在前,高位在后 代码 #include<iostream> #include<vector> #include<cstring> using namespace std; vector<int> add(vector<int>& A,vector<int>& B) { vector<int>

  • 49. 字母异位词分组2022-08-15 19:30:39

    49. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。   示例 1: 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"] 输出:

  • Atcoder ABC1692022-08-15 15:04:52

    A   直接输出\(a × b\)即可 int a, b; std::cin >> a >> b; std::cout << a * b << "\n"; B   将所有的\(N\)个数乘起来看是不是大于\(10 ^ {18}\),很明显会爆\(long\ long\)而用高精度的话也太麻烦了,所以可以考虑用\(\_\_ int128\_ t\),但也有可能会出现最后一

  • LeetCode/最多能完成排序的块2022-08-15 07:00:08

    1. 最多能完成排序的块I 给定一个长度为 n 的整数数组 arr ,它表示在 [0, n - 1] 范围内的整数的排列。 我们将 arr 分割成若干 块 (即分区),并对每个块单独排序。将它们连接起来后,使得连接的结果和按升序排序后的原数组相同。 返回数组能分成的最多块数量。 //从左往右遍历、融合不

  • c++xx 秋招学习STL库 (一)【vector】2022-08-15 00:33:30

    c++xx 秋招学习STL库 (一) vector类 主要针对一些编程时使用发现的一些问题与思考进行记录 Vector的初始化 一维数组 //using namespace std; vector<int> int_vec; vector<string> str_vec; //vector<> 二维数组 //两种方法 //方法一: //先设置5行 再动态填充6列 //方法二: //直

  • CF EDU 131 D - Permutation Restoration2022-08-14 14:33:11

    贪心、扫描线思想 D - Permutation Restoration 题意 有 \(1-n\) 的一个排列 \(a_i\), 给定 \(b_i\), 满足 \(b_i=\lfloor\frac i{a_i}\rfloor\), 求 \(a_i\) (n <= 5e5) 思路 先解出每一个 \(a_i\) 的取值区间,然后就是经典的作业调度问题 \(a_i\) 的取值区间 \(b_i=\lfloor\fra

  • 集合框架2----List实现类(ArrayList、vector、LinkedList)2022-08-14 12:04:58

    List实现类       ArrayList: ### 源码分析: DEFAULT_CAPACITY=10;默认容量(注意:如果没有向集合中添加任何元素,容量为0,添加一个元素之后,容量为10),每次扩容大小是原来的1.5倍。 elementData:存放元素的数组 size:实际大小 add():添加元素,代码如下: public boolean add(E e) {

  • 基于Vector的Autosar基础解读2022-08-14 00:30:49

    基于Vector的Autosar基础解读 https://www.autosar.org/ https://zhuanlan.zhihu.com/p/473204205   Autosar 基础 对于致力于从事软件开发和质量相关工作的同学,Autosar是绕不过的一个系统,它包括基本工具、方法和思维,对整个软件开发有完整的诠释。Autosar出现的背景也是软件工

  • AtCoder Beginner Contest 2642022-08-14 00:30:23

    E - Blackout 2 离线+并查集。 注意到只有删边操作,而删边操作其实不是很好维护。由于没有强制在线,所以可以离线一下然后逆序考虑,这样删边就变成了加边,这就用并查集就足以维护了。 AC代码 // Problem: E - Blackout 2 // Contest: AtCoder - freee Programming Contest 2022(AtCode

  • LeetCode1282.用户分组2022-08-13 18:03:41

    LeetCode1282.用户分组 原题链接:LeetCode1282.用户分组 思路 可以看出,一个元素所在组内的值如果和另一个元素所在的组内的值不同,那么这两个元素必然不在同一个组内 把可能同一个组的元素放到一个链内. 比如:groupSizes = [3,3,3,3,3,1,3],就把g[0~4],g[6]放到一个链内,g[5]放到一个

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有