ICode9

精准搜索请尝试: 精确搜索
  • 【ybtoj】【kmp】字符串题2021-09-06 17:31:17

    推荐一篇dalao的博客:wind_whisper qwq特别有帮助 题解 题解 神题!!!能够大大加深对KMP的理解qwq 循环节的常用结论:nxt[i] = i - pre[i] (画画图就能推出来) 对于每一个 nxt[i] 分类讨论: p[i]>0: 此时 s[i] = s[p[i]] p[i]=0: 我们首先要明白p[i]=0是怎么得到的因为kmp计算里的那个while

  • CSP201912-4 区块链(90分)2021-09-04 14:35:29

    不知道为啥是90分,而且是错误不是超时...正在忙着写web,等有时间再改吧 大体思路就是用队列去模拟(一开始写了个优先队列乱排序喜提70,改成普通队列就90了),node存储时间和节点以及当前节点的区块链。为什么要存当前节点的区块链?看看第二个样例的前两个询问就明白了,如果不这么存的话,2号

  • 7.22 学习笔记2021-08-30 09:35:08

    其只是内容已经在其他的博客中整理过,这里不再赘述。下面开始例题讲解。 1 例题 1.1 P3454 [POI2007]OSI-Axes of Symmetry 多边形的对称轴数量。我们直接用边长的平方和邻边作为字符,断环为链(复制一段),然后跑 Manacher,判断是否有符合长度的回文串即可。代码: #include<bits/stdc++.h>

  • 主席树学习笔记2021-08-29 21:32:52

    主席树 主席树,又称可持久化线段树,主要思想在线段树上加上一些历史节点去维护一些历史数据,实现对过去数据的查询。 去盗了一张图 途中橙色的节点维护的就是历史数据。 主席树的用处 引用大佬的一段话: 主席树就是利用函数式编程的思想来使线段树支持询问历史版本、同时充分利用它们

  • 新疆省赛A.A. chino with string(AC自动机+广义矩阵快速幂)2021-08-27 21:00:06

    前置知识: [TJOI2012]可乐 广义矩阵快速幂 AC自动机 #include<bits/stdc++.h> using namespace std; const int maxn=1010; typedef long long ll; int nxt[maxn][26],fail[maxn]; ll c[maxn]; int tot=1,rt=1,n,m; void ins (string s,int x) { int u=rt; for (char i:s) { if

  • [CF1004F] Sonya and Bitwise OR2021-08-26 22:00:11

    \(\text{Problem}:\)Sonya and Bitwise OR \(\text{Solution}:\) 分析一下 OR 的性质。对于左端点 \(l\) 固定的区间,其前缀至多只会有 \(\lceil \log_{2}V\rceil\) 个不同的取值,且每种取值都是连续的。当右端点固定时也是同理。 那么对于每个区间 \([l,r]\),维护其前缀与后缀每种不

  • icpc 2020 澳门 J Jewel Grab (线段树+set)2021-08-26 13:02:30

    题目链接:https://codeforces.com/gym/103119/problem/J 看到 \(k\) 只有 \(10\),所以可以暴力跳段统计答案 维护每个位置前一个相同颜色出现的位置 \(pre[i]\),如果 \(pre[i] < s\),则说明该颜色没有在 \(s\) 之后出现过,在线段树上二分找到第一个 \(pre[x] > s\) 的 \(x\) 即可 \(pre

  • KMP2021-08-25 20:33:37

    一、模式串匹配 模式串匹配,即给定一个文本串 \(A\) 和一个模式串 \(B\),询问 \(B\) 在 \(A\) 中是否出现、出现的次数及每次出现的位置等。通常数据范围为 \(1\le|A|,|B|\le10^6\)。 显然,我们可以枚举 \(A\) 的下标 \(i\),对于每一个 \(i\),都尝试用 \(B\) 去匹配( \(n=|A|,m=|B|\)): fo

  • 【NOIP 2013 模拟联考 8】最短路2021-08-25 15:34:22

    简析 看到 \(0\le k\le10\),\(k\) 非常的小,那么正解可以暴力。 预处理的话,我们考虑先把起点 \(s\) 和每一个特殊点做 \(k+1\) 次最短路。 然后暴力枚举 \(O(n!)\) 的顺序,顺序走一次,记录最小值,输出 。 虽说很简单但还是很考验码力。 Warning:当 \(k=0\) 时要特判,否则会出现意想不到的

  • 字典树2021-08-22 23:32:16

    字典树 算法思想 字典树(\(Trie\))是一个比较简单的数据结构,也叫前缀树或 \(Trie\) 树,用来存储和查询字符串。 例如,water,wish,win,tie,tired 这几个单词可以用以下方式存储 : 此时每一个叶子结点递归往上到根节点都是对应一个字符串。 其中每个字符占据一个节点,拥有相同前缀的字符串可

  • 【luogu P5496】【模板】回文自动机(PAM)(回文树)2021-08-11 19:31:06

    【模板】回文自动机(PAM) 题目链接:luogu P5496 题目大意 给你一个字符串,要你对于字符串的每个位置,求有多少个回文串是在这个位置结尾的。 思路 为啥要用 PAM 首先我们想想处理字符串问题有什么方法: KMP、AC 自动机 后缀数组后缀自动机 Manacher 哈希、DP、暴力等等。 但你发现如果要

  • [CF704B] Ant Man2021-08-09 21:02:40

    \(\text{Problem}:\)Ant Man \(\text{Solution}:\)​ 首先容易考虑一个建图跑最短路的做法。但这显然就假了,原因是:无法保证路径长度;无法保证每个点至多被遍历一次。 但这提示我们如果存在一个能保证路径长度的做法,可能就可以解决本题。考虑初始状态只有 \(s,e\) 两个点。如果存在

  • 剪花布条(KMP2021-08-06 23:04:25

    #include<bits/stdc++.h> using namespace std; const int N=2e5+10; vector<int> nxt;string s,t; int n;int ans=0,pre=-1; vector<int> getnxt(string s) { int n = (int)s.length(); vector<int> pi(n); for (int i = 1; i < n; i++)

  • P6466 分散层叠算法(Fractional Cascading)2021-08-06 19:31:17

    题目 题目 思路 突然良心发现决定写下简略题意: 求x在k个有序序列里所有的后继 多次询问,强制在线 所以这题的做法显然是由裸暴力和一个预处理爆炸的算法合并得到的 裸暴力不用说,是时间 O (

  • [Code+#1]Yazid 的新生舞会2021-08-04 15:04:46

    传送 这题比赛的时候考了原题,顾子哥推了出来一个挺复杂的线段树,没想到竟然是正解。 我们枚举大小为\(x\)的数,那么如果在区间\([L, R]\)中,\(x\)符合题目的条件,记\(num[i]\)为\(1\)到\(i\)中\(x\)的出现次数,那么有\(\frac{num[R] - num[L - 1]}{R - L + 1} > \frac1{2}\),整理得$$2

  • cf609e Minimum spanning tree for each edge2021-08-04 13:35:39

    cf609e Minimum spanning tree for each edge 有一个 \(n\) 个顶点,\(m\) 条边的带权无向图 . 对于图上的每一条边,求含有边 \((u,v)\) 的最小生成树大小 . \(1\leq n\leq 2\cdot 10^5,n-1\leq m\leq 2\cdot 10^5,1\leq u_i,v_i\leq n,u_i\not=v_i,1\leq w_i\leq 10^9\) 这是我们

  • 链式前向星板子】2021-08-04 09:34:46

    一种存边的结构 结构 包括 head nxt to 三个数组 和一个变量 cnt 变量 cnt 表示边的总数,每个边加入时的 cnt 为其编号 全局数组 head[u] 表示 以 u 为起点的第一条边的编号 边类的变量 nxt[i] 表示编号为 i 的边的下一条边 边类的变量 to[i] 表示编号为 i 的边的终点 建立边组时注

  • 查找 Search2021-08-01 13:00:24

    如果值域小一点。 那么我们有一个很精妙的做法。 分块完维护数字\(cnt\),和一个\(bitset\)信息。 然而小不得。 那么我们考虑维护后缀\(nxt_i\),表示第\(i\)位后,最近的\(a_i + a_{nxt_i} = w\) 线段树维护。 考虑到我们对于所有的相同\(nxt_i\),只有最后一个有效,那么我们只维护最后

  • HDU6964:I love counting——题解2021-07-31 22:01:09

    https://acm.hdu.edu.cn/showproblem.php?pid=6964 给定一数列,每次查询$(l,r)$,找到数列中位于该区间内的数$c$满足$a\, xor c\le b$,求这样的数的个数(要求数不能相同)。 SB题但是我不太会套路,来补一下。 显然是建Trie,然后由于求的是不同的数所以很快想到可持久化Trie+每个节点存当

  • 询系--家庭作业2021-07-29 21:00:01

    【问题描述】         小明一共有n项作业,第i项作业要在di时间之前完成,小明完成第i项作业需要bi的时间,对于小明来说,喝奶茶可以提高工作效率,但是奶茶对于不同的作业功效是不同的,你可以认为,小明在做第i项作业期间,每喝1ml的奶茶,他完成第i项作业所需要的时间就会减少ai,当然,奶茶还

  • Dijkstra算法模板2021-07-19 20:33:45

    #include<bits/stdc++.h> using namespace std; priority_queue<pair<int,int> >q; int n,m,dis[20005],cnt,head[20005]; bool v[20005]; struct hhh { int to,nxt,w; }a[20005]; void add(int x,int y) { a[++cnt].nxt=head[x],a[cnt].to=y,head[x]=cnt

  • 2021-07-19 暑假集训Day12021-07-19 19:30:27

    Result:191/1371 AC:5/12 Dir: xf从后往前开,yh从前往后开,我从中间乱开(),第一个随便看了个G(lol那题),感觉没有k的限制是个水题,有k的限制想了5分钟妹想出来,换了个C,发现数据范围为1-4,就手玩了几组数据,发现和nm奇偶性有关,和yh说了一下感觉能过,但特判的n=1m=1忘删除了,导致上来就WA了一

  • 2021.07.16笔记-图论 字符串12021-07-18 22:34:48

    写在前面 讲师: \(Zhang\_RQ\) 内容:图论(上午): \(Tarjan\) 差分约束 欧拉回路 二分图;字符串(下午):哈希,\(KMP\) ,\(Trie\) 树,\(AC\) 自动机,\(Manacher\) 笔记 \(by \ DReamLion\) ,部分代码来自 @\(wsy\_jim\) ,\(AC\) 自动机部分由 @\(wsy\_jim\) 执笔,特此鸣谢 wsy_jim's blog 图论 Tarja

  • P5180-[模板]支配树2021-07-12 14:32:55

    正题 题目链接:https://www.luogu.com.cn/problem/P5180 题目大意 给出 n n n个点的一张有向图,求每个点支配的点数量。 1

  • CF555D 最高机密2021-07-10 22:00:31

    1 CF555D 最高机密 题目链接:https://codeforces.com/problemset/problem/555/D 2 题目描述 时间限制 \(2s\) | 空间限制 \(256M\) Andrewid the Android is a galaxy-famous detective. Now he is busy with a top secret case, the details of which are not subject to di

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

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

ICode9版权所有