Codeforces 题面传送门 & 洛谷题面传送门 Yet another immortal D1+D2 I %%%%%% 首先直接统计肯定是非常不容易的,不过注意到这个 \(k\) 非常小,因此考虑对这个 \(k\) 做点文章.我们考虑每个数被执行了多少次 \(-1\) 操作,设第 \(i\) 个数被执行了 \(b_i\) 次 \(-1\) 操作,那么最终的结果就是 \((a_1-b_1)\oplus(a_2-b_2)\oplus\cdots\oplus(a_n-b_n)\).然后就是比较神…
题意 给定三个整数 \(n,k,c\) 和一个长度为 \(n\) 的序列 \(a\),保证 \(a_i\) 互不相同.可以操作 \(k\) 次,每次随机选择一个 \(a_i\) 变成 \(a_i-1\).问最后的序列异或和为 \(0,\cdots 2^{c}-1\) 的概率. \(\texttt{Data Range:}k,c\leq 16,k\leq a_i\leq 2^c-1,n\leq 2^{c}-k\) 题解 先来看一个显而易见的结论:对于 \(x\leq 2^c-1\),本质不同的 \…
Codeforces 题面传送门 & 洛谷题面传送门 智商掉线/ll 本来以为是个奇怪的反悔贪心,然后便一直往反悔贪心的方向想就没想出来,看了题解才发现是个 nb 结论题. Conclusion. 在最优方案中,至多只有一个数组只有部分被选,其余数组要么全选要么全都不选. 证明:考虑调整.假设存在两个数组 \(x,y\) 分别选了前 \(p,q\) 个元素,这里不妨假设 \(a_{x,p+1}\ge a_{y,q+1}\),那么考虑从 \(y\) 数组中拎 \(l=\min(len_x-p,q)…
集合幂级数其实就是一种集合到数的映射,并且我们针对集合的一些操作(or  xor and specil or )为这种映射定义运算.其中一些东西可以通过某些手段将其复杂度降低. orz vfk /************************************************************** Problem: 4036 User: idy002 Language: C++ Result: Accepted Time:3584 ms Memory:13092 kb **…
题目传送门:http://uoj.ac/problem/94 这是一道集合幂级数的入门题目.我们先考虑求出每个点集的连通生成子图个数,记为$g_S$,再记$h_S$为点集$S$的生成子图个数,容易发现,$h_S=2^{size_S}$,其中$size_S$为点集$S$的极大生成子图内的边数.特殊的,$f_{\o}=g_{\o}=0$. 定义集合幂级数的乘法为子集卷积,考虑集合幂级数$h$和$g$的关系,我们可以得到 $$h=1+\sum_{k \geq 1}\frac{g^k}{k!}=1+e^…
Description 你有一个随机数生成器,它会以一定的概率生成[0,2^N-1]中的数,每一个数的概率是由序列A给定的,Pi=Ai/sum(Ai) 现在有一个初始为0的数X,每一轮随机生成一个数v,将X变成X xor v 求X变成0~2^N-1的期望轮数 答案对998244353取模 N<=18,Ai<=1000 Solution 不妨反过来做,f[i]为i到0的期望轮数,显然等价 易得i>0, \[f[i]=1+\sum f[i\ xor\ j]p[j]\] 1移到左边来 \[f[…
洛谷题面传送门 首先 \(3^n\) 的做法就不多说了,相信对于会状压 dp+会枚举子集的同学来说不算困难(暴论),因此这篇博客将着重讲解 \(2^nn^2\) 的做法. 首先如果我们把每个 \(a_i\) 看作一个集合幂级数 \(1+x^{a_i}\),那么我们的任务就是把所有这样的集合幂级数做一遍子集卷积对吧.直接做一脸过不去.不过注意到这个式子的形式比较特别,事实上学过多项式&生成函数的同学应该对形如 \(1+x^k\) 的式子特别敏感,因为在生成函数那套理论中有个恒等式 \(\ln(1+…
Atcoder 题面传送门 & 洛谷题面传送门 震惊,我竟然能独立切掉 AGC E 难度的思维题! hb:nb tea 一道 感觉此题就是找性质,找性质,再找性质( 首先看到排列有关的问题,我们可以很自然地将排列拆成一个个置换环,即我们建一张图 \(G\),对于 \(i\in[1,n]\) 连边 \(i\to p_i\),那么题目的要求就可以转化为:对于每个点 \(i\),它置换环上下一步或者下下步为 \(a_i\). 做出这个简单的转化后,就可以发现一个非常 trivial 的性质: Obse…
题面传送门 好久没写过题解了,感觉几天没写手都生疏了 首先这种题目直接做肯定是有些困难的,不过注意到题目中有个奇奇怪怪的条件叫 \(m\ge n-2\),我们不妨从此入手解决这道题. 我们先来探究 \(m=n-1\) 的情况,观察大样例可知这种情况一定有解,我们不妨考虑这样一个贪心:假设 \(x\) 为使 \(d_i\) 取到最小值的 \(i\),\(y\) 为使得 \(d_i\) 取到最大值的 \(i\),那么我们就用 \(d_x\) 个原料 \(x\) 与 \(k-d_x\) 个原料 \(y…
Codeforces 题目传送门 & 洛谷题目传送门 %%%%% 这题也太神了吧 storz 57072 %%%%% 首先容易注意到我们选择的这 \(y\) 条路径的端点一定是叶子节点,否则我们总可以将其调整到叶子节点并使答案不会更劣,并且如果非必须(\(2y\le\) 树中叶子节点的个数),我们选择的这 \(y\) 个路径的 \(2y\) 个端点一定两两不相同,否则我们还是可以调整重复的叶子节点的位置使答案不变劣. 其次我们还可以发现,对于固定的 \(2y\) 个叶子节点,我们总存在一种选法使…
Codeforces 题面传送门 & 洛谷题面传送门 u1s1 感觉这个 D1F 比某道 jxd 作业里的 D1F 质量高多了啊,为啥这场的 D 进了 jxd 作业而这道题没进/yun 首先这题肯定有个结论对吧,那么我们就先尝试猜一下什么样的排列符合条件,也就是先考虑这题 \(a_i\)​​ 全是 \(-1\)​​ 的情况怎么做,那么通过观察可以发现,由于判定两个数是否互质的过程中只需要考虑它们的质因子集合即可,因此可以发现如果两个数包含的质因子集合完全相同,那么它们显然是可以互换的,因此假设第…
Codeforces 题目传送门 & 洛谷题目传送门 还是做题做太少了啊--碰到这种题一点感觉都没有-- 首先我们来证明一件事情,那就是存在一种合并方式 \(\Leftrightarrow\) \(\exist b_i\in\mathbb{Z}^+,\sum\limits_{i=1}^na_ik^{-b_i}=1\) 考虑充分性,倘若我们已经知道了 \(b_1,b_2,\dots,b_n\) 的值怎样构造合并的序列,考虑 \(B=\max\limits_{i=1}^nb_i\),这里有一个结论,…
Codeforces 题面传送门 & 洛谷题面传送门 一道名副其实(beautiful)的结论题. 首先看到这道设问方式我们可以很自然地想到套用斐波那契数列的恒等式,注意到这里涉及到 \(F_{a+id}\),因此考虑斐波那契数列组合恒等式 \(F_{m+n+1}=F_mF_{n}+F_{m+1}F_{n+1}\),具体证明戳这里,这里就不再赘述了. 注意到此题还涉及后 \(18\) 位,也就是要将斐波那契数列的各种运算放到模 \(10^{18}\) 意义下进行,因此我们可以考虑找一下斐波那契数…
Codeforces 题目传送门 & 洛谷题目传送门 其实是一道还算一般的题罢--大概是最近刷长链剖分,被某道长链剖分与直径结合的题爆踩之后就点开了这题. 本题的难点就在于看出一个性质:最长路径的其中一个端点一定是直径的某一个端点. 证明:首先我们找出原树的一个直径,如果直径上标记边的个数为偶数那显然这条直径就是最优解,符合题意,否则我们假设我们找出的直径为 \(AB\),我们已经找出了一条符合要求的路径 \(CD\),下证我们总可以通过调整 \(CD\) 的端点,找出一条以 \(A\) 或 \…
Codeforces 题面传送门 & 洛谷题面传送门 咦,题解搬运人竟是我? 一道很毒的计数题. 先转化下题意,每一次操作我们可以视作选择一种颜色并将其出现次数 \(+k\),之后将所有颜色的出现次数 \(-1\).我们假设第 \(i\) 种颜色被操作了 \(c_i\) 次,那么一组 \(\{c_1,c_2,\cdots,c_k\}\) 符合条件当且仅当 \(\forall i,a_i+kc_i\ge\sum\limits_{i=1}^kc_i\).我们所求即是符合这样的条件的 \(\{a_i-…
Codeforces 题面传送门 & 洛谷题面传送门 神奇的强迫症效应,一场只要 AC 了 A.B.D.E.F,就一定会把 C 补掉( 感觉这个 C 难度比 D 难度高啊-- 首先考虑对问题进行初步转化.显然对于 \(s_i=s_j,t_i=t_j\)​ 的 \((i,j)\)​,我们肯定会将它们放在一起操作,这启发我们将所有 \((s_i,t_i)\)​ 看作一个二元组,那么如果我们把"每一步将字符 \(x\) 变为 \(y\)"这样的操作视作一条从 \(x\) 连向 \(y…
Codeforces 题面传送门 & 洛谷题面传送门 一道不知道能不能算上自己 AC 的 D1E(?) 挺有意思的结论题,结论倒是自己猜出来了,可根本不会证( 开始搬运题解 ing: 碰到这样的题我们肯定要考虑一个图邻接矩阵的秩是什么.显然根据我们幼儿园就学过的线性代数,对于一个矩阵 \(A\)​ 而言,其行列式就是其最大的子式满足其行列式不等于 \(0\),也就是任取若干行 & 若干列,它们的交组成的矩阵行列式不等于 \(0\),不难发现对于一个森林的邻接矩阵而言,对于任意一个子式,如果…
Codeforces 题目传送门 & 洛谷题目传送门 *2800 的 DS,不过还是被我自己想出来了 u1s1 这个 D1C 比某些 D1D 不知道难到什么地方去了 首先碰到这类问题我们肯定考虑枚举什么东西,然后在枚举过程中用个什么东西维护答案,求出其对答案的贡献.此题一个很直观的想法是枚举左端点,但很遗憾此题涉及 gcd,不太好直接维护.故我们换个想法,枚举答案. 我们先预处理出每个数的所有因子--这个显然可以在 \(n\ln n\) 的时间内求出.然后从大到小动态地枚举一个指针 \(i\).…
Codeforces 题目传送门 & 洛谷题目传送门 首先拿到这类题第一步肯定要分析题目给出的矩阵有什么性质.稍微打个表即可发现题目要求的矩形是一个分形.形式化地说,该矩形可以通过以下方式生成:\(A_n\) 为一个 \(2^n\times 2^n\) 的矩阵,\(A_0=[1]\),\(A_i=\begin{bmatrix}A_{i-1}&A'_{i-1}\\A'_{i-1}&A_{i-1}\end{bmatrix}\),其中 \(A'_{i}\) 也是一个 \(2^i\time…
现场 1 小时 44 分钟过掉此题,祭之 大力分类讨论. 如果 \(|s|=1\),那么显然所有位置都只能填上这个字符,因为你只能这么填. scanf("%d",&n);mmp['+']=0;mmp['-']=1;mmp['*']=2; for(int i=1;i<=n;i++) scanf("%d",&a[i]); char opt[4];scanf("%s",opt+1);int len=strlen(opt+1); i…
反思 写一写可以发现上限不断更新 一直在想怎么判断NO,刻板拘泥于错误的模型,想要像往常一样贪心地.读入当前值就能判断会不会NO,实际上只要构造完以后,最后把所有操作重新跑一遍看会不会冲突即可判断NO #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxn = 5005; int n, m…
xor是满足交换律的,展开后发现仅仅要能高速求出 [1mod1....1modn],....,[nmod1...nmodn]的矩阵的xor即可了....然后找个规律 C. Magic Formulas time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output People in the Tomskaya region like magi…
题目链接:点击打开链接 Imp is in a magic forest, where xorangles grow (wut?) A xorangle of order n is such a non-degenerate triangle, that lengths of its sides are integers not exceeding n, and the xor-sum of the lengths is equal to zero. Imp has to count the n…
A. Learning Languages time limit per test:2 seconds memory limit per test:256 megabytes The "BerCorp" company has got n employees. These employees can use m approved official languages for the formal correspondence. The languages are numbered wi…
题目链接: C. Magic Odd Square Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, column and both main diagonals are odd. Input The only line contains odd integer n (1 ≤ n ≤ 49). Output Print n lines with n integers. All the…
洛谷题面传送门 神仙题. 深夜写题解感受真好 我们考虑两个简单环 \(C_1,C_2\)​​​,我们假设颜色种类数为 \(k\)​​​,那么我们需要有 \(C_1,C_2\)​​​ 均符合条件,而由于 \(C_1\oplus C_2\)​​​ 也是环,因此我们也必须有 \(C_1\oplus C_2\)​​​ 符合条件.不难发现 \(C_1,C_2,C_1\oplus C_2\)​​​ 这三个环是由 \(C_1-(C_1\cap C_2),C_2-(C_1\cap C_2),C_1\cap C_…
洛谷题面传送门 nb tea 一道! 首先考虑怎样入手分析这个看似非常不可做的问题.首先题目涉及高度无穷的树,根本枚举不了.不过我们冷静一下就会发现,如果我们记 \(mx=\max\limits_{i=1}^{n}\text{dep}(T_i)\),那么由于初始树的集合中不存在深度 \(>mx\) 的树,因此所有可以生成的深度 \(>mx\) 的树都经过了生长操作,也是说: Observation \(1\). 对于某个深度 \(d>mx\),存在深度为 \(d\) 的树不能通过生长得到…
这题可以根据l, r 在二进制下的长度进行分类. l  的长度小于 r 的时候,有两种可能,一种是r 在二进制下是 1* 这种样子,故答案取 r : 一种是取答案为  (1LL << (rcnt - 1)) - 1 ,意思为比 r 小一位长度,也是 1* 这种样子的数. l 的长度等于 r 的时候,答案从 l 开始找 , 按位 与 1,同时要满足答案不大于 r  即可. source code (有参考): //#pragma comment(linker, "/STACK:1677…
这题一场模拟赛我们出了弱化版(n<=1e6),抄题面给的程序能拿到71分的好成绩 其实后面的29分是加了几个1e9的数据卡人 这糟老头子真是坏得很 正解我们机房看了三天 在这里感谢这篇题解的作者,代码解释得很清晰~ 经过打表观察,可以发现:当\(1\le x \le k\)时 如果 \(k\) 为奇数,\(x*2^{y}\) \(mod\) \(k\)的值成环 如果 \(k\) 为偶数,质因数分解\(x\),如果所含因子\(2\)的次数大于\(k\)所含因子\(2\)的次数,那\(x*2^{y}…
Codeforces 1110 E 题意:给定两个数组,从第一个数组开始,每次可以挑选一个数,把它变化成左右两数之和减去原来的数,问是否可以将第一个数组转化成第二个. 思路: 结论:两个数组可以互相转化的充要条件是它们差分后的数组排序后相同并且它们第一个数相同. 证明: 先证明一个引理. 引理:两个数组可以互相转化的必要条件是它们都能转化成同一个数组. 证明:假设A转化成B,C也转化成B,由于操作可逆,于是可以从A转化成B再转化成C.\(\square\) 证明原结论的充分性. 看某一次操作.…