ICode9

精准搜索请尝试: 精确搜索
  • 超全的正则表达式速查手册2022-08-03 22:00:24

      一、校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$ 正数、负数、和小数

  • 8月2日做题日记2022-08-02 22:00:32

    8.2 刷题日记 P6591 [YsOI2020]植树 换根法,处理子树大小,然后看子树大小一不一样就行。 #include<bits/stdc++.h> #define INF 0x3f3f3f3f #define debug cout<<"Szt ak ioi\n"; //#define int long long const int Mod=1e9+7; const int N=1e6+7,M=2e3+1; using namespace std;

  • 后缀自动机(SAM)习记2022-08-01 21:03:10

    前言 本文没有构造证明,因为我不会 基础概念看看就好,自娱自乐。 后期重点更新相关题目的简单总结,方便复习 SAM 基础概念 S 的后缀自动机是一种能够识别所有 S 的子串的自动机类型的数据结构(DFA)。 暴力后缀自动机 对于字符串 \(S\),建立插入了 \(|S|\) 个后缀的 Trie 树。这样显然可

  • 【2022暑期集训】最小生成树专题题解2022-08-01 21:02:04

    A [USACO3.1]最短网络 Agri-Net 题目背景 Farmer John 被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。 题目描述 FJ 已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了用最小的消费,他想铺设最短

  • ZZULI (2022河南萌新联赛 四)2022-07-31 21:33:43

    题目描述 分析 读题不认真这个毛病什么时候能改? 我竟然看成最长上升子序列问题了, 而且还把代码写好.......(其实就算看出来是并查集, 我也不会写qwq)赛后借鉴大佬代码, 收获很大 以后看到连通块这个词, 就往并查集的方向想 AC代码 #include <iostream> #include <cstring> usi

  • LCA(树上倍增)2022-07-31 20:33:43

    https://www.luogu.com.cn/problem/P3379 链式前向星存边 fa[i][j]  代表从i结点向上找 2^i 代的父亲,(i=0代表真父亲) dfs从根结点开始fa[now][i] = fa[fa[now][i - 1]][i - 1];代表当前结点的第2^i代父节点是当前结点2^(i-1)父节点的2^(i-1)代父节点,然后再对其连接到的非父结点df

  • CF1221G Graph And Numbers2022-07-31 18:33:29

    written on 2022-05-06 鸣谢@uid13237的代码提供了我能理解的思路 这是一道计数题。 初见这题,有些束手无策,但是题目给出了三个限制,那么我们对于这种有限制的计数题,可以考虑容斥。 大体思路就是容斥,想到这点,后面的大部分过程就很简单了,中间的过程可以参照这篇题解的,因为懒得打了。

  • ShangHai2006 Homework ZLOJ 练习16 D2022-07-31 18:31:37

    written on 2022-05-16 开始拿到这题时,很明显是数据结构题,但苦于找不到一个合适的数据结构。 那么对于这样的一道题,正解是根号分治。根号分治,顾名思义,就是将询问对象分成 \(\leq \sqrt n\) 的部分 与 \(\geq \sqrt n\) 的部分,分别进行处理。 对于前一部分,我们可以通过每一次都处理

  • Vjudge20220416练习9 C CodeForces - 1013D2022-07-31 18:00:30

    written on 2022-04-22 传送门 这是一道很有价值的题目,也是同类型题目中一道基础题 题目所给条件可以转化为: 给定(a,c),(a,d),(b,c) 那么(b,d)自动出现 这些都是二元关系,二元关系一多,就是暗示我们要考虑建图。那么想象现在有四个点 \(a\) , \(b\) , \(c\) , \(d\) ,现在有一些无向

  • 字符串2022-07-29 22:01:19

    哈希与哈希表 • 使用一个哈希函数将某个特定的数字变成另一个数字,这种操作称之为hash。 • 通常我们会以取模运算来作为哈希函数。 • 举例: hash(key)=key%23, 这样数组 [1 ,75,324] -> [1 ,6,2] • 如果哈希后得到的值相同,我们则可用该值建一个链表,把相同的值都放一起, 这样我们

  • CF1498F Christmas Game2022-07-29 21:03:16

    从简单往复杂推。 菊花图并且 \(k=1\) 时,这是个 \(Nim\) 游戏。 继续 \(k=1\),奇偶分类后发现一样是奇数深度意义下的 \(Nim\) 游戏。 \(k > 1\) 时,深度除以 \(k\) 后还是个 \(Nim\) 游戏。 换根 \(dp\) 求解一下即可。 #include<cstdio> const int H=4000040; char G[H],*_=G; in

  • 棋盘上的守卫2022-07-29 18:32:47

    棋盘上的守卫   在( i,j )这个点上我们可以放置两种守卫,第一种是横向守卫,第二种是竖向守卫,所以它们之间只能选择一种,可以抽象成一条边,链接的是横向的第 i 个阶段,竖向的第 j 个阶段,为了方便,我们将 j的下标写作j + n。 可以得到一条性质: 对于任意一个点 i, 若 i > n,则这是列的阶段

  • [hdu7168]Shallow Moon2022-07-27 13:35:14

    将矩形每$w$行分为一块,则染色部分即连续$h$列的前/后缀 将其离散后,对每个位置求出最长前/后缀,这可以用单调队列做到线性 将"每个位置" 和 极长的无染色块缩成一个点,显然总点数为$o(n)$ 点间的边即同块内相邻两点 和 相邻两块中两点(均需判对应区间有交),显然同样为$o(n)$ 时间复杂度

  • 2022牛客多校补题2022-07-27 10:35:34

    title: 牛客多校补题 author: Sun-Wind date: July 22, 2022 C 思路 几何 + 枚举 首先通过画图我们可以知道,同一行上覆盖最多的点由该行第一个被占据的座位决定,所以要预处理出每一行最靠近黑板的点 由询问数量可以知道,对于每次询问需要用O(n)的时间解决 分两个区域解决,第一次

  • ExtJS-内置字体图标(Font)2022-07-27 09:04:46

    更新记录 2022年7月27日 发布。 2022年7月6日 从笔记迁移到博客。 ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html 说明 ExtJS内置支持三种字体图标 Font Package Package Name fontCls iconPrefix fontFamily ExtJs font-ext ext ext ExtJS Font Awe

  • 2022牛客多校Day2 A(LCA)2022-07-27 03:31:17

    这题主要学习两点,一个是LCA具有可加性,这个在做题的时候考虑到了; 另一个是对于在一个具备可加性的点集中去除一个点再看剩下点的影响,可以考虑预处理出前缀和以及后缀和,然后枚举删掉的节点进行计算。rainy说这是非常常见的套路。 1 #include "bits/stdc++.h" 2 using namespace s

  • 2022牛客暑期多校训练营3-A.Ancestor(LCA)2022-07-26 18:35:06

    题目传送门:https://ac.nowcoder.com/acm/contest/33188/A 题意: • 给出两棵编号 1-n 的树 A B , A B 树上每个节点均有一个权值,给出 k 个关键点的编号,问有多 少种方案使得去掉恰好一个关键点使得剩余关键点在树 A 上 LCA 的权值大于树 B 上 LCA 的权值。 思路:预处理出关键点序列的

  • P7843 「C.E.L.U-03」布尔2022-07-26 18:34:04

    Statement 给你 \(n\) 个布尔变量和 \(m\) 个限制,设 \(s_i\) 为 \(i\) 的取值。第 \(i\) 个限制形如 \(s_{u_i}\) 为 \(x_i\) 则 \(s_{v_i}\) 必须为 \(y_i\),同时如果 \(s_{v_i}\) 为 \(y_i\) 则 \(s_{u_i}\) 必须取 \(x_i\)。 一共 \(q\) 次询问,每次询问给出一个区间 \(l,r\)。求

  • LCA 返回最近公共祖先:预处理2022-07-25 15:05:17

    三种祖先关系 a是b祖先 b是a祖先 a和b不是祖先关系 必备:知道根节点 必须存下来 有可能跳过根节点 int depth[N],f[][N];//N为(log节点数)+1 int q[N]; 从根节点开始预处理; 需要设置0号点为哨兵 询问 p=lca(a,b) 向上标记法on:从一个点向根节点遍历标记公共祖先 ,然后另一个点也向上走

  • 题目Luogu 4-P1967 货车运输2022-07-25 09:31:36

    题目链接 依旧是很裸的题干 题干很清楚,肯定是图论 一开始想到单源最长路,用贝尔曼福德算法,全部边权变成相反数,后来发现不可行 因为这个题目要找的路径是边权最小值最大 最小值最大——二分 但是如果对于每个询问都二分一次再check,复杂度来到了O(n2logn)无法接受 (题解里好像有对询

  • 堆板子计划2022-07-25 08:01:12

    LCT*1 struct LCT_Tree{ #define lch V[p].son[0] #define rch V[p].son[1] #define Isroot(p) (V[V[p].fa].son[0]!=p && V[V[p].fa].son[1]!=p) #define Son(p) (V[V[p].fa].son[1]==p) struct Vertex{int son[2],siz,sum,t1,fa;}V[maxn]; int tot; int New(

  • "蔚来杯"2022牛客暑期多校训练营1 J Serval and Essay2022-07-24 22:04:48

    启发式合并 对于任意入度为1的点,选择它的前驱进行染色一定优于对它本身染色,于是将这两点进行合并(_Merge部分) 合并的方向由两个点的出度决定,由出度小的点向出度大的点进行合并(这样最多只有n/2条要合并的边) 合并的过程中,可能会出现入度变为1的点,进行类似深搜的操作即可 #include<b

  • 数据结构2022-07-24 09:02:06

    平衡树 我们需要维护一种数据结构,支持以下操作:插入值,删除值,查询数在集合中的排名,查询排名为 \(k\) 的数,求某个数的前驱与后继。 我们可以用二叉搜索树维护,但是可以被卡成 \(O(n)\) ,那么我们要用到另外一种数据结构,即平衡树来维护这些操作。 平衡树种类较多,这里仅介绍其中的Splay、

  • 20220724与佬谈并查集2022-07-24 02:31:14

    听佬一席话,胜刷一周题。要抓住一切机会和佬尬聊啊hhh 起源 和佬的尬聊中,偶然提及了并查集。学了一周算法的\(shanzr\)自信地打出他最喜欢的板子: int fa[10010]; int myFind(int x){while(x!=fa[x])x=fa[x]=fa[fa[x]];} void myUnion(int a,int b){fa[myFind(a)]= myFind(b);} 很

  • 左偏树【待施工】2022-07-23 17:03:32

    #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10; int fa[N],ls[N],rs[N],dist[N],val[N],id[N]; bool del[N]; int n,m,cnt; int get(int x) { if(x == fa[x])return x; return fa[x] = get(fa[x]); } struct leftist { int id,val; b

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

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

ICode9版权所有