首页 > TAG信息列表 > leftarrow
ARC145E
题面 你有一个长度为 \(n\) 的序列 \(A\) ,你想通过小于等于 \(70000\) 次操作使 \(A\) 等于另一个序列 \(B\) ,或判断无解。 操作为:选择一个 \(k\in[1,n]\) ,对于 \(i\in[2,k],a_i\leftarrow a_i\oplus a_{i-1}\) 。 数据范围 :\(n\le 1000,a_i< 2^{60}\) 。 题解 首先分析一下操作,发错题集【持续更新】
\(\textit{Task Table}\) spaly\(\text{Splay}\)的板子打熟 + \(\rm Splay\) 的应用 + 拓展 \(AC\) 自动机 + 失配树 \(\rm exkmp\) 和 \(Manacher\) 快忘了! \(01\;Trie\) 是什么? 尝试理解 \(\text{Suffix Array}\) 再就是树剖的板子(和平衡树)经常打炸? (之前的数论知识考不考虑复习#21 CF830D
Singer House 题目描述 点此看题 解法 同时路径计数问题,本题可以和 环 这题对比起来理解。 基本方法都是一样的,首先考虑计数顺序应该是自底向上的树形 \(dp\),但是计数顺序却和我们考虑的状态——有向路径产生了冲突,因为按照这样的计数顺序,有向路径从某个点来看,可能就是若干个分散[tdog]最长子串
最长子串 传送门 让\(0\leftarrow -1\),\(1\leftarrow k\),做一次前缀和,原题转化成求最远的两个点,使他们的差为\(0\)。排序一边即可。 code: #include <bits/stdc++.h> using namespace std; long long n, k, ans = -2147483647; struct data{ long long num, pos; }s[1000005];Adversarial Vertex Mixup: Toward Better Adversarially Robust Generalization
目录概主要内容代码 Lee S., Lee H. and Yoon S. Adversarial vertex mixup: toward better adversarially robust generalization. In IEEE Conference on Computer Vsion and Pattern Recognition (CVPR), 2020. 概 本文提出类注意哦那个 AVmixup 方法用以提高鲁棒的泛化性.【墨鳌】【数论小结 01】【乘法逆元】【扩展欧几里得】
数论小结 1. 扩展欧几里得 首先,根据辗转相除法,不难有: \[\gcd(a,b)=\gcd(b,a\%b) \]关于扩展欧几里得算法,是解决线性方程:\(ax+by=c\) 当且仅当,\(\gcd(a,b)|c\) 有解 又因为,\(x,y\in\Z\),所以问题可以转化为,解线性方程:\(ax+by=\gcd(a,b)\) 这就是扩展欧几里得算法的初始条件 假设,我们[ARC093D] Dark Horse
一、题目 点此看题 二、解法 以前我是做过类似的题的,但是现在为什么这都做不来了呢? 我们先把 \(1\) 固定在 \(1\) 号位计算,最后再把答案乘上 \(2^n\) 即可。对 \(1\) 打到根的这条链进行计数,考虑容斥原理,如果 \(a_1,a_2...a_m\) 中的某个人出现在了这条链上,就增加 \(-1\) 的容斥系AtCoder Grand Contest 013&014
013D Piling Up 题目描述 点此看题 解法 还是把一开始的球确定了好 \(dp\),否则写出来的 \(dp\) 奇奇怪怪还不好优化。 枚举初始时有 \(x\) 个白球 \(n-x\) 个黑球,注意每一轮之后球数都是 \(n\),可以设 \(dp[i][j]\) 表示前 \(i\) 轮过后有 \(j\) 个白球对应序列方案数,我们考虑这一AtCoder Regular Contest 135
真的好久没有打线上赛了,虽然只做了一个小时就去听课了。希望手感能越来越好吧,还是不要把问题想复杂,正常地去找结论应该就可以了,保佑我下次 codeforces 的下午场一发上红吧。 D.Add to Square 题目描述 点此看题 解法 操作问题思考不变量,我们可以构造出 \(a_{i,j}=A_{i,j}\cdot (-1[AGC030F] Permutation and Minimum
一、题目 点此看题 二、解法 我拿到这题点思路都没有,但是对于排列计数题,我们往往要把原问题抽象出来。 比如本题我们可以把问题抽象成 \(n\) 对数对的规划问题,并且由于值由数对的最小值决定,所以我们从大到小填数,如果某个数对已经填完了,那么它的值是由刚刚填入的数显现的。 然后我Note/Solution - 浅尝转置原理 & 多点求值
\[\newcommand{\vct}[1]{\boldsymbol{#1}} \newcommand{\mat}[1]{\begin{bmatrix}#1\end{bmatrix}} \newcommand{\opn}[1]{\operatorname{#1}} \mathscr{\text{Defining }\LaTeX\text{ Macros...}} \] 我并没有透彻理解涉及知识点的严谨描述形式,所以本文大量用语是基于让读者理CF946B Weird Subtraction Process 题解
Content 有两个数 \(a,b\),执行如下操作: 如果 \(a,b\) 中有一个数是 \(0\),结束操作,否则跳到操作 \(2\)。 如果 \(a\geqslant 2b\),那么 \(a\leftarrow a-2b\),并跳回操作 \(1\),否则跳到操作 \(3\)。 如果 \(b\geqslant 2a\),那么 \(b\leftarrow b-2a\),并跳回操作 \(1\),否则结束操作。LuoguB2078 含 k 个 3 的数 题解
Content 给定一个数 \(n\),判断其数位中是否恰好有 \(k\) 个 \(3\)。 数据范围:\(1<n\leqslant 10^{15}\),\(1<k\leqslant 15\)。 Solution 我们先考虑如何分离出每个数位,其实很简单。我们都知道,\(n\bmod 10\) 就是 \(n\) 的个位,而 \(n\leftarrow\left\lfloor\dfrac n{10}\right\rfloCF1483E Vabank 题解
Link. Codeforces Luogu Solution Link Description. 猜数,需要猜出 \(M(M\in[1,10^14])\),有一个权值 \(P\) 初始是 \(1\)。 你每次可以询问一个数 \(X\),分以下三种情况讨论。 \(X\le M\),返回 Lucky!,\(P\leftarrow P+X\)。 \(P\ge X>M\),返回 Fraudster!,\(P\leftarrow P-X\)。 \(X>CF506E Mr. Kitayuta's Gift
一、题目 点此看题 二、解法 使我深受洗礼的一道题,是既有思维难度又有代码难度不可多得的好题! 先考虑偶回文串吧!首先考虑如何计数,题目都告诉你只关心最终状态,我们直接对最终状态计数。考虑枚举法确定原来字符在最终序列的位置,那么可以简单计数来确定方案。 用 \(dp\) 优化这个过程AT3913 XOR Tree 题解
Link. ATcoder Luogu Description. 给定一棵树,边带权,每次选择一条链并对上面所有边 \(\oplus\) 上一个任意值。 询问至少几次可以使所有边权变为 \(0\)。 Solution. 没想到那个巧妙的构造。 构造点权为它周围所有边权的 \(\oplus\)。 这样每次修改相当于选择两个不同的点 \(x,y\)洛谷 P7718 -「EZEC-10」Equalization(差分转化+状压 dp)
洛谷题面传送门 一道挺有意思的题,现场切掉还是挺有成就感的。 首先看到区间操作我们可以想到差分转换,将区间操作转化为差分序列上的一个或两个单点操作,具体来说我们设 \(b_i=a_{i+1}-a_i\),那么对于一次形如 \(\forall i\in[l,r],a_i\leftarrow a_i+x\) 的操作三元组 \((l,r,x)\),我算法|堆排序
完成阅读您将会了解堆排序的: 算法思想 实现步骤 实践范例(C++/Rust) 1. 算法思想 堆排序(Heap Sort)是数据结构堆的一个具体应用,由 J. W. J. Williams 在1964年发表的堆排序[1]提出。关于堆的介绍请前往数据结构堆查看。 在堆的基础上,每次取出堆顶,再维护剩余堆的性质即可完成堆排序,Adva::0x06
Adva::0x06 倍增 Part 1. 引言 倍增,字面意思为“成倍增长”。指在进行递推时,只将状态空间中形如 \(2^k\) 的值作为代表进行递推,其他位置的值可以通过记录的值计算出来,降低了时间复杂度。 Part 2. 倍增初步 给定一个长度为 \(n\) 的数列 \(a\),然后进行若干次询问,每次给定一个整thusc2021题解
T1 move description 给定一个长度为 \(n\) 的序列 \(a\) 和一个正整数 \(m\) ,现在按下述策略删除 \(a\) 中的数字: 选出一个下标序列 \(p\) ,使得其: 单调递增 \(\sum_\limits{x\in p}a_x\le m\) 元素个数最多 字典序是满足上述条件的序列中最大的 然后删除 \(a\) 中下标在 \(p\)Scalar evolution技术与i^n求和优化
Scalar evolution技术与i^n求和优化 (如果不想看一开始的引例,想直接看Scalar evolution,可以直接跳过这个“引例”部分。) 引例 考虑\(i^3\)求和 \[S=\sum_{i=1}^n{i^3} \]其C语言代码为 #include <stdio.h> int main() { int n, s = 0; scanf("%d", &n); for (int i =高考睿智导数题集锦
T1 \(\forall x>0\) 求证:\((e^x-1)\ln(x+1)>x^2\) 注意到 \(e^x-1\) 与 \(\ln(x+1)\) 互为反函数。 不妨设 \(F(x)=e^x-1\) \[\begin{aligned} \Leftarrow&F(x)F^{-1}(x)>x^2\\ \Leftarrow&\frac{F(x)}x>\frac x{F^{-1}(x)}\\ RHS=&F^{-1}(「赛前备战」NOIp2020-提高 动态规划训练
博主太菜,可能会炸联赛,于是恶补一下 QAQ 动态更新 「eJOI2017」Experience update - 2020.7.27 树形 dp 设 \(f(x, 0), f(x, 1)\) 分别表示以 \(x\) 为根的子树,\(x\) 所在链为向下(非严格)递减、递增时的答案。 题目中要求求极差,那么结点 \(x\) 可能为最大值或最小值。 以向下递减「JSOI2014」打兔子
「JSOI2014」打兔子 传送门 首先要特判 \(k \ge \lceil \frac{n}{2} \rceil\) 的情况,因为此时显然可以消灭所有的兔子,也就是再环上隔一个点打一枪。 但是我们又会发现当 \(n = 3, k = 2\) 时,这种情况也满足上述条件但是我们只能打掉两群兔子,所以选兔子最多的两个格子打。 对于剩下Loj #2687 - 「BalticOI 2013」Vim
搞了一个 \(nk^2\) 的做法。 首先如果前面是一个 \(e\) 那下一步一定是将 \(e\) 删掉,花费 \(2\) 。 那么可以将 \(e\) 删掉,每个之前有 \(e\) 的点都必须经过,求最短的方案。 答案一定是向后走一段,然后把前面的所有必经点都走掉,于是可以轻松得到 \(O(n^2)\) 的做法。 现在考虑优化。