来,背 稍微提一下原根的求法,我们对于模数(p-1)质因数分解,然后暴力枚举原根,我们发现原根满足 \(^{n}_{i=1}g^{\frac{p-1}{p_i}}\not\equiv 1(mod\ p)\) 就没了。 然后就是模数需要满足是\(X\times 2_n+1\) 的形式,否则上任意模数NTT #include<bits/stdc++.h> using namespace std; #d
大家都知道拉格朗日插值的公式(已知 \(n\) 个点 \((x_i,y_i)\),求唯一确定的经过这 \(n\) 个点的\(n-1\) 次多项式): \[f(x)=\sum_{i=1}^ny_i\left(\prod_{j\ne i}\frac{x-x_j}{x_i-x_j}\right) \]但是洛谷模板只让求了一个点的点值,就不用把系数表达式算出来。本蒻稽不会 \(O(n\log n)
链接 P7453 分析 因为每个点维护的三个值会互相影响,所以不能分别写 tag,但我们发现其实所有操作都可以用矩阵来描述,所以你只需要在线段树上维护一个矩阵lazytag和四个区间和,分别是 \(\sum a,\sum b,\sum c,\sum 1\)。 同时我们发现对于一次覆盖区间的修改,我们只需要用修改矩阵乘上
参考: 题解 CF708E 【Student's Camp】 - 热言热语 的博客 - 洛谷博客 (luogu.com.cn) 取模 inline int _(int a) { return a + (a >> 31 & D); } inline void Add(int &a, ll b) { a = (a + b) % D; } inline void Sub(int &a, ll b) { a = _((a - b) % D); } inline voi
题目 点这里看题目。 省流版:求结点个数为 \(n\) 的结点儿子数不超过 3 的无标号有根树个数。 对于 \(100\%\) 的数据,满足 \(1\le n\le 10^5\)。 分析 首先,遇到这种问题,不难猜想使用生成函数;并且,其余一大堆树计数的问题,都可以用生成函数解决。 设 \(G(x)\) 为问题的生成函数,也就是
第五节 操作符与运算符重载 在C++中,操作符本身就是一种函数,是可以让使用者自定义的。那么我们认为复数的计算,不如直接用+号来使用,而+号的概念和运算规则需要进行运算符重载。 操作符重载根据成员函数的区别有两种写法: inline complex& complex::operator += (const complex& r)
A. 进制转换 可以把进制转换看成是一个解一个式子 每一项的系数都在 \(0\) 到 \(9\) 考虑 \(b\) 较大时的情况,最高次的值要远大于其他值 于是只考虑这一项带来的限制 \(a_mb^m\leq y \leq a_mb^m+9\times \frac{b^m-1}{b-1}\) 根据这个式子可以解出 \(b\) 的两个取值的范围是,从大
''' { "CDPMax": 792, "CDPMin": 58, "LineMax": 796, "LineMin": 510, "bps": 4, "dsf": 1, "dsfDesc": "IBM Fl
题目大概是 「USACO21OPEN」 Do You Know Your ABCs? 的弱化版 题目大意 给出 7 个数, 他们分别代表 \[a, b, c, a + b, a + c, b + c, a + b + c \]下文中用 \(A\) 数组表示输入的数。 求 \(a, b, c\)。 注意:那7个数是经过排序的, 所以答案不一定是\(A_1,A_2,A_3\) 题解 可以发现,
Css inline-block 不在一行问题 问题解答:因为width100% 换行了 问题解答:因为width100% 换行了 .sun{ display: inline-block; width: 100%; height: 500px; }
Codeforces 997D Cycles in product 一道不难的 \(\texttt{DP}\) 题,但模拟赛时没做出来/kk ( 大概是一直在思考线性代数了 ) 。 首先可以将两棵树拆开来算贡献。设 \(A_i(k)\) 为树 \(T_i\) 上走出长度为 \(k\) 的环的方案数,\(A(k)\) 为树 \(T_1\times T_2\) 上走出长度为
link Description 对于一个长度为 \(n\) 的序列,选出一个子序列,使得相邻两项的并之和最大。 \(n\le 10^6\) Solution 考虑到我们可以设 \(f_i\) 表示前面 \(i\) 个以 \(a_i\) 的最大序列价值,那么我们可以发现 \(f_i\) 是具有单调性的。 考虑对于 \(i\) 转移存在点 \(j,k,s.t. j<k\)
文章目录 referenceGetting Started with GitHub Copilot in Visual Studio Code 快捷键和指令(default)推荐快捷键修改指令 效果打开实时候选窗格 初次使用可能的问题 reference Getting Started with GitHub Copilot in Visual Studio Code Installing the Visual Stu
link Description 给出三角形三边长,给出绳长,问绳在三角形内能围成的最大面积。保证绳长 \(\le\) 三角形周长。 Solution 首先我们得知道,三角形的内切圆半径就是三角形面积 \(\times 2\) 除以三角形周长。 可以看出,如果绳长 \(\le\) 三角形内切圆周长,那么我们肯定是围成一个圆。否
2022年02月04日,第十六天 1. 题目链接:P2147 [SDOI2008] 洞穴勘测 思路: L C T LCT LCT 在线解决,时间复杂度
这里主要讲一下为什么 merge 函数需要新建节点的问题,以免以后忘掉。其他都是在分裂与更新的时候新建节点的问题。 这张图片是我们执行分裂后,\(9,4\) 分别是我们分裂出来的两颗子树。 然后我们考虑对 \(9,4\) 执行合并操作。因为 \(9,10,4\) 使我们新建的节点,所以我们他们的 \(key
树状数组 树状数组是一种高效的对列表更新和求前缀和的结构 对于已经学过的前缀和(O(1)修改 O(n)查询),考虑维护一部分的区间和,修改时需要修改若干位置,查询时也需要查询若干位置,以此把修改和查询的代价平衡。 灵感 对于如何维护一部分区间,考虑每个整数为若干个 2 的幂的和,将每个前缀拆
前言 之前 W3Schools 学习笔记就有提到了 CSS Layout - The display Property 这篇做更多的解释. 参考: CSS Display FLEX vs Block, Inline & Inline-Block Explained Disfault Display of Element Display: block block 的特色是旁边不会有其它 element. 即便 div
\(\mathscr{Description}\) Link. (It's empty temporarily.) 给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r]\),求升序枚举 \(a_{l..r}\) 时下标的移动距离。 \(n,q\le5\times10^5\)。 \(\mathscr{Solution}\) 我写了个不加莫队,它慢死了。 我写了个 Ynoi
思想 对于每个节点,把所有子节点中子树最大的一个,成为重点,其它成为轻点。重点到父亲节点的连线成为重边,重边连接成若干条重链,其余的每个点称为重链。 可以发现,如果路径经过一条轻边,那么现在的子树大小至少缩小一半,所以每条路径可以被拆分成最多 \(\log n\) 条链,这样一来,就可以把较
题意 P4117 [Ynoi2018] 五彩斑斓的世界 给定一个长度为 \(n\) 的序列和 \(m\) 个操作,每次操作可以: 将区间 \([l, r]\) 中所有大于 \(x\) 的值减去 \(x\) 询问区间 \([l, r]\) 中值 \(x\) 的出现次数 \(1 \leq n \leq 10^6, 1 \leq m \leq 5 \times 10^5, 1 \leq l \leq r \l
link Solution 首先我们可以发现,对于任意一个选出来的物品序列,如果我们排序之后奇偶分类,那么分成的两堆一定相差 \(\le n-1\) 。 然后我们考虑dp,我们可以设 \(f_{a,w}\) 表示选 \(a\) 个物品,重量和为 \(w\) 的价值和最大值,那么对于 \(a\) 为偶数,则有转移式: \[f_{a,w}=\max_{i} \{f
link Solution 我们考虑设 \(f_{u,i}\) 表示的是以 \(u\) 为根的子树,\(u\) 连一条长为 \(i\) 的链的已选边的边权之和最大值。 考虑如何转移,我们可以设 \(t_{i,j}\) 表示儿子选了长度为 \(1\) 的链的个数减去长度为 \(3\) 的链的个数为 \(i\) ,长度为 \(2\) 的奇偶性为 \(j\) 时我
使用pycharm时在类、方法/函数、变量上按下Ctrl+Q时会显示其对应的描述和docstring,我记得默认情况下鼠标在其上停留一秒就会自动显示,但是不知为何最近不自动显示了,重新开启方法如下: 确认关闭 Power Save Mode 在设置中勾上 Show the documentation popup 复选框 https://www.j
记录一下inline函数的作用 普通函数的调用过程 在eclipse里面创建工程,代码如下: #include <iostream> #include <vector> #include <cstring> #include <cassert> #include <algorithm> using namespace std; //__attribute__((always_inline)) inline int test(int x) int