ICode9

精准搜索请尝试: 精确搜索
  • AcWing 352/loj 10131. 「一本通 4.4 例 2」暗的连锁2021-08-04 23:00:37

    Description 给定一棵 \(n\) 个点的树,还有 \(m\) 条非树边,问有多少种方法使得仅砍去一条树边和一条非树边使得这个图分成不相连的两(或更多)部分。 每次如果先砍去主要边后已经砍成两半,则仍要再砍一条附加边。 Solution 一看这数据范围,暴力组合肯定不可行。 思考附加边的作用:在这棵

  • [LOJ#6019]. 「from CommonAnts」寻找 LCM2021-08-03 20:35:20

    [LOJ#6019]. 「from CommonAnts」寻找 LCM 题意 求 \[\prod_{i=1}^n \binom{x_i}{c_i} \bmod{p} \]其中 \(p\) 不一定是质数 题解 注意到 \(n\) 不小,但是值域很小。 如果是之后的我看到这道题肯定就 exLucas 卡常了,但是我不会 exLucas( 我们考虑这个东西一定是一些阶乘相乘,我们考虑

  • [LOJ#6021]. 「from CommonAnts」寻找 LCR2021-08-03 20:31:46

    [LOJ#6021]. 「from CommonAnts」寻找 LCR 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图,\(q\) 次询问,每次询问 \(A\) 到 \(B\) 的路径上权值最大值的最小值是多少。 题解 我们找出来这 \(n\) 个点的无向图的最小生成树,然后每次相当于在生成树上询问两点路径上最小值,相当于是克鲁

  • [LOJ #3533] NOI2021 路径交点2021-07-31 01:02:42

    [LOJ #3533] NOI2021 路径交点 这题反映出来的就是菜吧 当时就是没想出来。 我们可以想到的一点就是,路径的这个交点个数,其实就是逆序对个数。于是我们考虑 \(K = 2\) 的情况,就是这一层边的临接矩阵的 \(\text{Det}\)。 我们考虑一个事情就是假如一层的奇数答案是 \(f_i\),偶数是 \(

  • [LOJ 6360] 复燃「恋之埋火」2021-07-22 20:03:19

    一、题目 点此看题 二、解法 前置知识:最小圆覆盖,高斯消元求圆心 根据随机增量法的复杂度分析,我们发现就算在高维情况它也是 \(O(n)\) 的,问题在于 \(m\) 维空间,给定 \(k+1\) 个在圆上的点,怎么求覆盖它们的最小圆?可以考虑高斯消元,但要推柿子。 结论:最小圆的圆心一定要在这 \(k+1\)

  • LOJ #6208 树上询问2021-07-18 11:01:49

    记录一下第一个自己做出来的矩阵乘法数据结构题 传送门 大意是给你一个树,每个点维护两个权值k[i],t[i],初始为0 支持如下操作: 1、Add(x,d) 将x到根的路径上的点k[i]+=d 2、Mul(x,d) 将x到根的路径上的点t[i]+=d*k[i] 3、询问t[x] 首先非常显然的,使用树链剖分可以一个log的代价把原问

  • 【LOJ#3026】管道监控2021-07-17 19:32:59

    题目 题目链接:https://loj.ac/p/3026 \(n\leq 500,m\leq 10^5,\sum |s_i|\leq 10^6\)。 思路 我们可以把字符串倒着插入一棵 Trie,然后枚举给出的树上的所有点 \(x\),同时在这个节点和 Trie 树上跳。如果当前跳到点 \(y\),此时 Trie 树上跳到的点恰好是某一个字符串的结尾,那么我们就

  • Solution -「LOJ #138」「模板」类欧几里得算法2021-07-15 08:00:06

    \(\mathcal{Description}\)   Link.   \(T\) 组询问,每次给出 \(n,a,b,c,k_1,k_2\),求 \[\sum_{x=0}^nx^{k_1}\left\lfloor\frac{ax+b}{c}\right\rfloor^{k_2}\bmod(10^9+7) \]  \(T=1000\),\(n,a,b,c\le10^9\),\(0\le k_1+k_2\le 10\)。 \(\mathcal{Soluti

  • [LOJ#6188]「2017 山东二轮集训 Day7」鬼牌2021-07-14 22:03:50

    [LOJ#6188]「2017 山东二轮集训 Day7」鬼牌 题意 有 \(n\) 张牌,每张牌上有一个\(1\sim m\)的点数,最开始点数为 \(i\) 的牌有\(a_i\) 张 每次你会随机选两张不同的牌 \(A,B\),并把 \(A\) 的点数变成 \(B\) 的点数 求所有牌的点数变成一样的期望步数 \(n\le 1e9,m\le 1e5\) 题解 我们

  • [ SDOI 2016 ] 模式字符串2021-07-14 19:33:45

    题目 Luogu LOJ Acwing 思路 代码 #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> using namespace std; typedef unsigned long long ULL; const int N = 1000010, P = 31; int T, n, m, pre[N], suf[N]; char w[N], tm

  • loj#3094. 「BJOI2019」删数2021-07-09 08:32:25

    Description loj#3094 Solution 首先肯定是考虑在没有修改的情况下,直接给定序列该如何计算该序列需要修改几个数才能删空: 首先,该序列的顺序对答案是没有任何影响的,影响答案的只有某个数的出现次数,这令我们想到在值域数轴上用桶维护每个数的出现次数。 接下来考虑模拟删边的过程,一

  • [ CQOI2016 ] 伪光滑数2021-07-07 19:33:06

    题目 Luogu LOJ Acwing 思路 代码 #include <iostream> #include <queue> #define int long long using namespace std; int n, k, P[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 7

  • LOJ #6041. 「雅礼集训 2017 Day7」事情的相似度 LCT + SAM + 线段树2021-07-07 14:02:59

    我们有一个经典模型: 两个串的最长公共后缀长度,是后缀树中两点 LCA 的深度.  直接求 LCA 似乎有些困难,不妨这样想 :  设两个串在后缀树中对应的点分别为 $a,b$,将 $a$ 到根的路径涂色,$b$ 向根爬,遇到的第一个涂色点即为 $a$ 与 $b$ 的 LCA.   我们用 $LCT$ 来维护 这颗树,涂色操作直

  • 题解 LOJ #3045. 「ZJOI2019」开关2021-07-07 13:31:36

    题目链接 方便起见,先令所有 \(p_i\leftarrow \frac{p_i}{\sum p}\)。 一上来会想到的应该是如下的两个柿子: \[\left\{ \begin{aligned} \sinh(x)&=x+\frac{x^3}{3!}+\frac{x^5}{5!}+\cdots=\frac{e^x-e^{-x}}{2}\\ \cosh(x)&=1+\frac{x^2}{2!}+\frac{x^4}{4!}+\cdots=\frac{e

  • LOJ#2369. 「BalticOI 2008」魔法石2021-07-02 23:02:34

    题目链接 LOJ #2369. 「BalticOI 2008」魔法石 题目大意 一个字符串由 \(X\) 和 \(I\) 组成,定义两个串是相同的当且仅当一个串可以通过翻转(头尾倒过来)另一个串得到,我们取字典序较小的那个作为该串的表达方式,求在长度为 \(n\) 的串中,满足「 \(X\) 和 \(I\) 相邻的地方数量 \(\leq k

  • [科技]Loj#6564-最长公共子序列【bitset】2021-07-02 14:32:53

    正题 题目链接:https://loj.ac/p/6564 题目大意 给两个序列\(a,b\)求它们的最长公共子序列。 \(1\leq n,m,a_i,b_i\leq 7\times 10^4\) 解题思路 无意间看到的一个\(bitset\)科技。 首先设\(f_{i,j}\)表示\(a\)串匹配到第\(i\)个\(b\)串匹配到第\(j\)个时的最长长度,做过\(dp\)套

  • #单位根反演,二项式定理#LOJ 6247 九个太阳2021-06-29 22:03:15

    题目 \[\large {\sum_{i=0}^n[k|i]C(n,i)}\pmod {998244353} \]其中\(n\leq 10^{18}\),\(k=2^p,p\in [0,20]\) 分析 主要是\(k\)条件比较难想,但是貌似有点像NTT的原根, 而且这个组合数也难求,二项式定理是一个将组合数转换为一个快速幂的定理 主要是没写过单位根反演,直接推式子算了

  • Loj#6247-九个太阳【单位根反演】2021-06-29 19:02:16

    正题 题目链接:https://loj.ac/p/6247 题目大意 给出\(n,k\)求 \[\sum_{0\leq i\leq n,i|k}\binom{n}{i} \]对\(998244353\)取模 \(1\leq n\leq 10^{15},1\leq k\leq 2^{20},k=2^p(p\in N)\) 解题思路 随便找的一题竟然是单位根反演,不过很基础而且很裸。 首先单位根反演的式子\(

  • 【LOJ 2017】:数学期望2021-06-11 11:34:16

    传送门 题目描述 给你 n n n扇门,每一扇门如果是正数,则可以通过 t t t时间出去,否则经过

  • 「SOL」序列 (LOJ/NOI2019)2021-06-10 09:05:06

    准备写新博客的时候发现自己草稿箱里还有一篇咕了十几天的题解

  • loj#2312. 「HAOI2017」八纵八横(线性基 线段树分治)2021-06-05 10:03:09

    题意 题目链接 Sol 线性基+线段树分治板子题。。 调起来有点自闭。。 #include<bits/stdc++.h> #define fi first #define se second #define pb push_back #define bit bitset<B + 1> using namespace std; const int MAXN = 501, B = 1001, SS = 4001; inline int read() {

  • loj#6041. 「雅礼集训 2017 Day7」事情的相似度(SAM set启发式合并 二维数点)2021-06-05 10:03:01

    题意 题目链接 Sol 只会后缀数组+暴躁莫队套set\(n \sqrt{n} \log n\)但绝对跑不过去。 正解是SAM + set启发式合并 + 二维数点/ SAM + LCT 但是我只会第一种qwq 首先一个性质是两个前缀的最长公共后缀就是他们再parent树上的LCA的len 那么我们考虑每个LCA的贡献。 把询问离线下来

  • loj#6073. 「2017 山东一轮集训 Day5」距离(树链剖分 主席树)2021-06-05 10:02:46

    题意 题目链接 Sol 首先对询问差分一下,我们就只需要统计\(u, v, lca(u, v), fa[lca(u, v)]\)到根的路径的贡献。 再把每个点与\(k\)的lca的距离差分一下,则只需要统计每个点与\(k\)的lca深度。这个东西等价于所有的链与\(k\)到根的链的并。 树剖+主席树维护一下。这题的主席树需要

  • loj#6074. 「2017 山东一轮集训 Day6」子序列(矩阵乘法 dp)2021-06-05 10:02:33

    题意 题目链接 Sol 设\(f[i][j]\)表示前\(i\)个位置中,以\(j\)为结尾的方案数。 转移的时候判断一下\(j\)是否和当前位置相同 然后发现可以用矩阵优化,可以分别求出前缀积和逆矩阵的前缀积(这题的逆矩阵炒鸡好求) 这样就可以\(n*10^3\) 发现相邻两个矩阵只有一行不同,那么其他的可以

  • loj#6073. 「2017 山东一轮集训 Day5」距离(费用流)2021-06-05 10:02:17

    题意 题目链接 Sol 我们可以把图行列拆开,同时对于行/列拆成很多个联通块,然后考虑每个点所在的行联通块/列联通块的贡献。 可以这样建边 从S向每个行联通块连联通块大小条边,每条边的容量为1,费用为\(i\)(i表示这是第几条边)。 从每个点所在的行联通块向列联通块连边,容量为1,费用为0

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

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

ICode9版权所有