题解
文章平均质量分 67
2020linweitong
这个作者很懒,什么都没留下…
展开
-
JZOJ 4888. 【NOIP2016提高A组集训第14场11.12】最近公共祖先
JZOJ 4888. 【NOIP2016提高A组集训第14场11.12】最近公共祖先注意到每一层的结点作为 lca 的贡献是相同的。设当前的结点的深度为 ddd, 深度为 ddd 的子树大小为 szdsz_dszd。那么这个结点的贡献是 szd+12k(k−1)+2szd−1sz_{d+1}^2k(k-1)+2sz_d-1szd+12k(k−1)+2szd−1。比较显然的 szd=∑i=dn−1ki−dsz_d=\sum_{i=d}^{n-1}{k^{i-d}}szd=∑i=dn−1ki−原创 2021-08-24 21:05:43 · 210 阅读 · 0 评论 -
JZOJ 3442. 【NOIP2013模拟】期望异或
JZOJ 3442. 【NOIP2013模拟】期望异或其实答案就是 ∑∑i⊕jn2×(1−p)+∑i⊕f(i)n×p\frac{\sum\sum{i\oplus j}}{n^2}\times (1-p)+\frac{\sum i\oplus f(i)}{n}\times pn2∑∑i⊕j×(1−p)+n∑i⊕f(i)×p。上述式子有 f(i)f(i)f(i) 为 另一个与 iii 异或成最大值的数。第一部分考虑拆位,每一位单独算期望。那么比较显然我们要求 000 到 n−1n-1n−1 中某一原创 2021-08-24 13:39:18 · 159 阅读 · 0 评论 -
JZOJ 7237. 【USACO 2021 February Contest, Gold】Problem 3 Count the Cows
JZOJ 7237. 【USACO 2021 February Contest, Gold】Problem 3 Count the Cows考虑 x,yx,yx,y 满足情况,当且仅当 xxx 和 yyy 的三进制表示位下每一位奇偶性相同。所以题目转化为有多少个 zzz 满足 (x+z,y+z)(x+z,y+z)(x+z,y+z) 满足条件,注意 0≤z≤d0\leq z\leq d0≤z≤d 。考虑数位 dp ,设 fi,0/1,0/1,0/1f_{i,0/1,0/1,0/1}fi,0/1,0/原创 2021-08-17 07:42:52 · 302 阅读 · 0 评论 -
NOI2018 屠龙勇士 题解
NOI2018 屠龙勇士 题解不定方程考虑一个不定方程ax+by=cax+by=cax+by=c如何解。首先裴蜀定理说明了当(a,b)∣c(a,b)\mid c(a,b)∣c时,上面的不定方程才有解。考虑设x=x2c(a,b)x=x_2\frac{c}{(a,b)}x=x2(a,b)c,y=y2c(a,b)y=y_2\frac{c}{(a,b)}y=y2(a,b)c。ax+by=cax2c(a,b)+by2c(a,b)=(a,b)c(a,b)ax2+by2=(a,b)ax+by=c\\原创 2021-07-18 20:00:40 · 206 阅读 · 1 评论 -
JZOJ 5102.【GDOI2017 day2】小学生语文题 题解
JZOJ 5102.【GDOI2017 day2】小学生语文题 题解考虑设fi,jf_{i,j}fi,j表示BBB串的jjj到nnn能填充AAA串的iii到nnn所需要交换的最小值。当ai=bja_i=b_jai=bj,fi,j=fi+1,j+1f_{i,j}=f_{i+1,j+1}fi,j=fi+1,j+1当满足jjj到nnn的aia_iai这个字符大于iii到nnn的aia_iai这个字符,fi,j=fi+1,jf_{i,j}=f_{i+1,j}fi,j=fi+1,j可以不选原创 2021-07-16 21:56:02 · 138 阅读 · 1 评论 -
JZOJ 6683. 【2020.06.04省选模拟】我图呢(graph) 题解
JZOJ 6683. 【2020.06.04省选模拟】我图呢(graph) 题解题目大意给你一个二分图,求最大独立集。输出方案。解题思路我们把权值加上infinfinf后,为什么要用总的权值减去最小割?考虑一条边如果被割了,那么相当于把点移除集合。如果不割,相当于留在TTT中。所以求的答案,TTT的最大点权和,为不割的边的边权和。不割也就是总的权值减去最小割。寻找答案:本题的算法:考虑从sss开始搜索,在残量网络上找仍可以流的边,然后找到SSS集合。枚举边集,看一看这条边是否过两个集合。这原创 2021-07-14 21:55:45 · 186 阅读 · 1 评论 -
洛谷 P3901 数列找不同 题解
洛谷 P3901 数列找不同 题解题目:在此。静态查询区间内是否全部不同。有很多别的算法,具体讲莫队。首先按询问离线排序,然后移动一下,每一次将当前的(l,r)(l,r)(l,r)移动到询问的(l,r)(l,r)(l,r),边移边算贡献。#include<bits/stdc++.h>using namespace std;int n,m,q,a[100005],ans[100005],e[100005],cnt[100005],sum;struct query{ int l,r原创 2021-06-13 19:35:40 · 195 阅读 · 1 评论 -
洛谷 P2709 小B的询问 题解
洛谷 P2709 小B的询问 题解题目:在此。查询平方,考虑如何算贡献。假设原来的数是xxx,多了111,那么贡献增加(x+1)2−x2=2x+1(x+1)^2-x^2=2x+1(x+1)2−x2=2x+1。假设现在的数是xxx,原来减了111,那么贡献减少(x+1)2−x2=2x+1(x+1)^2-x^2=2x+1(x+1)2−x2=2x+1。与上题类似,用莫队维护即可。#include<bits/stdc++.h>using namespace std;int n,m,k,q原创 2021-06-13 19:34:30 · 106 阅读 · 0 评论 -
洛谷 P1494 [国家集训队]小Z的袜子 题解
洛谷 P1494 [国家集训队]小Z的袜子 题解题目:在此。考虑贡献。一段区间是(l,r)(l,r)(l,r),那么总选择数是Cr−l+12C^2_{r-l+1}Cr−l+12。设有kkk个不同颜色,第iii个有aia_iai次,那么这一个的贡献是Cai2C_{a_i}^2Cai2。所以答案为∑Cai2Cr−l+12\frac {\sum C_{a_i}^2}{C_{r-l+1}^2}Cr−l+12∑Cai2。莫队维护Cai2C_{a_i}^2Cai2。具体,假设某种颜色原原创 2021-06-13 19:33:09 · 149 阅读 · 0 评论 -
JZOJ 1306. Sum 题解
JZOJ 1306. Sum题目大意有一个序列aaa长度为nnn,要找到一段区间的和模ppp大于等于kkk,问这些符合条件的和的最小值。解题思路设si=∑j=1iajmod ps_i=\sum_{j=1}^i{a_j}\mod psi=∑j=1iajmodp。暴力不说了,直接枚举两个端点。我们发现一个问题,这里要用到模运算,不能用线段树较好的维护。从j+1j+1j+1到iii的所有数的和是si−sjmod ps_i-s_j\mod psi−sjmodp。上面这个式子,有两种情况原创 2021-05-04 19:54:04 · 111 阅读 · 0 评论 -
【五校联考1day1】已经没有什么好害怕的了 题解
【五校联考1day1】已经没有什么好害怕的了 题解看一个例子()()()(),在结尾加上(。上面这个图就是表示了红色的数字就是下一个左括号的红色数字加一(右括号的数字为111),新加的左括号为111;蓝色数字就是上一个左括号的蓝色数字减一(右括号的数字为−1-1−1),第一个左括号为−1-1−1。然后其实就是递推求出这些数字。而红蓝色数组的和就是一个差分数组,表示这一个数与上一个数的差值,所以就前缀和一下边算边计算答案。怎么证明上述方法是正确的呢?下面设红色数组为aaa,蓝色为bbb。则a1+b1原创 2021-04-07 21:34:21 · 246 阅读 · 0 评论 -
【NOIP2018提高组D1T3】赛道修建 题解
【NOIP2018提高组D1T3】赛道修建 题解很妙的方法。题目在此。解题思路关键词:二分,贪心,动态规划看到要求最小值最大,显然是个二分。二分一下答案,设为limlimlim,即我们要在这棵树中选大于等于mmm条链,长度大于等于limlimlim。设fx,restxf_x,rest_xfx,restx分别表示以xxx为根的子树最多可以弄出几条合法的链,以及剩下的地方最长的不合法链的长度。然后转移显然,就是fx=s+∑i∈sonxfif_x=s+\sum_{i\in son_x}{f_原创 2021-01-25 21:43:59 · 321 阅读 · 0 评论 -
【NOIP2018提高组D2T1】旅行 题解
【NOIP2018提高组D2T1】旅行 题解题目在这里。解题思路关键词:贪心,基环树考虑m=n−1m=n-1m=n−1的情况,直接按结点编号大小排序,每次选最小的即可。设sonison_isoni表示iii的儿子,那么时间复杂度为O(∑i=1nsonilog2soni)\begin{aligned}O(\sum_{i=1}^n{son_i\log_2^{son_i}})\end{aligned}O(i=1∑nsonilog2soni)所以为O(nlog2n)O(n\log_2原创 2021-01-25 21:28:00 · 267 阅读 · 0 评论 -
【NOIP2017提高组正式赛】列队 题解
【NOIP2017提高组正式赛】列队题目在这里。解题思路关键词:动态开点线段树。原创 2021-01-25 07:49:36 · 160 阅读 · 0 评论 -
【NOIP2017提高组正式赛】宝藏 题解
【NOIP2017提高组正式赛】宝藏 题解题目大意这道题目题目大意就是说,有一个图G=(V,E)G=(V,E)G=(V,E),求一个子图G′=(V,E′)G'=(V,E')G′=(V,E′),满足E′=V−1E'=V-1E′=V−1,也就是一棵树。然后每一次一条边建出来的花费就是长度乘以这条边起点的深度加一。求最小花费。解题方法关键词:状态压缩动态规划设fi,jf_{i,j}fi,j表示现在这棵树的深度为iii,整棵树的状态(用0/10/10/1表示)为jjj时,的最小花费。画一个图好看一原创 2021-01-22 11:13:49 · 338 阅读 · 0 评论 -
【NOIP2017提高A组模拟9.23】碎 题解
【NOIP2017提高A组模拟9.23】碎题目描述解题方法枚举第一瓣的陌生度,二分枚举第二瓣的陌生度(假设第一瓣一定大于等于第二瓣),然后用2−SAT2-SAT2−SAT判断一下。这样可以40分。然后考虑优化。我们用并查集从大到小见图,然后判断环。情况1如果这是一个图的偶环,那么最短边不可能与答案有关,舍去。情况2如果这是一个图的奇环,那么最短边是最第一瓣陌生度的下界,也就是说,第一瓣的陌生度一定大于等于这条边,所以只要看大于等于它的边。这就是优化,可以做到O(n3log2n)O原创 2021-01-13 16:36:17 · 207 阅读 · 0 评论 -
JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore 题解
JZOJ 5398. 【NOIP2017提高A组模拟10.7】Adore 题解题目大意给你一个nnn层DAGDAGDAG,有向无环图,然后改变第iii层可以将((i,j),(i+1,k))((i,j),(i+1,k))((i,j),(i+1,k))这条边变成((i,k),(i+1,j))((i,k),(i+1,j))((i,k),(i+1,j)),问有多少种方法使路径数为偶数。解题思路设fi,jf_{i,j}fi,j表示第iii层路径数奇偶性状态为jjj的方案数,aia_iai表示第iii层到原创 2020-12-02 17:06:27 · 178 阅读 · 1 评论 -
保命 题解
保命 题解题目在这里。下面都设这n+1n+1n+1个建筑的编号为111到n+1n+1n+1。设fi,jf_{i,j}fi,j表示第i个消火栓放到j点的答案。则fi,j=fi−1,k+∑p=k+1jwp(sj−sp)f_{i,j}=f_{i-1,k}+\sum_{p=k+1}^{j}{w_p(s_j-s_p)}fi,j=fi−1,k+p=k+1∑jwp(sj−sp)其中si,wis_i,w_isi,wi分别表示第一个点到第i个点的距离及第i个点的人数。然后拆原创 2020-10-17 16:37:35 · 134 阅读 · 0 评论 -
Codeforces Global Round 1 G. Tree-Tac-Toe 题解
Codeforces Global Round 1 G. Tree-Tac-Toe 题解题目链接在这里。题目大意有一棵树上面有nnn个结点,其中有些结点已经有了颜色(白色),有些还没有。现在有两个人,第一个人可以将任意一个没有染色过的点染色成白色,第二个人可以将任意一个没有染色过的点染色成黑色,每人轮流操作一次。当任意三个相邻结点都处于同颜色,则该颜色的人获胜(白:第一个人,黑:第二个人)。两人都绝顶聪明,请问最终谁会获胜(White,Black,Draw)。解题方法正解:树上博弈论。我们分类原创 2020-09-08 21:11:41 · 143 阅读 · 0 评论 -
2020.08.07【NOIP提高组】模拟:排列 总结
2020.08.07【NOIP提高组】模拟:排列 总结Description一个关于nnn个元素的排列是指一个从{1,2,…,n}\{1, 2, …, n\}{1,2,…,n}到{1,2,…,n}\{1, 2, …, n\}{1,2,…,n}的一一映射的函数。这个排列ppp的秩是指最小的kkk,使得对于所有的i=1,2,…,ni = 1, 2, …, ni=1,2,…,n,都有p(p(…p(i)…))=ip(p(…p(i)…)) = ip(p(…p(i)…))=i(其中,ppp一共出现了kkk次)。例原创 2020-08-10 07:38:36 · 149 阅读 · 0 评论 -
2020.08.08【NOIP提高组】模拟:奶牛的图片 总结
2020.08.08【NOIP提高组】模拟:奶牛的图片 总结DescriptionFarmer John希望给他的N(1≤N≤100,000)N(1\leq N\leq100,000)N(1≤N≤100,000)只奶牛拍照片,这样他就可以向他的朋友炫耀他的奶牛.这N只奶牛被标号为1...N1...N1...N.在照相的那一天,奶牛们排成了一排.其中第iii个位置上是标号为ci(1≤ci≤N)c_i(1\leq c_i\leq N)ci(1≤ci≤N)的奶牛.对于奶牛的站位,Farmer John有原创 2020-08-08 15:57:55 · 379 阅读 · 0 评论 -
2020.08.08【NOIP提高组】模拟:灌水 总结
2020.08.08【NOIP提高组】模拟:灌水 总结¥DescriptionFarmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记。把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库。建造一个水库需要花费wi(1<=wi<=100000),连接两块土地需要花费Pij(1<=pij<=100000,pij=pji,pii=0).计算Farmer John所需的最少代价。Input*第一行:一个数n*第二原创 2020-08-08 15:49:48 · 159 阅读 · 0 评论 -
2020.08.08【NOIP提高组】模拟:奶牛编号 总结
2020.08.08【NOIP提高组】模拟:奶牛编号 总结Description作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛。然而,他有点迷信,标识奶牛用的二进制数字,必须只含有KKK位“111”(1≤K≤10)(1\leq K\leq10)(1≤K≤10)。 当然,每个标识数字的首位必须为“111”。FJ按递增的顺序,安排标识数字,开始是最小可行的标识数字(由“111”组成的一个KKK位数)。不幸的是,他没有记录下标识数字。请帮他计算,第NNN个标识数字(1≤N≤10原创 2020-08-08 15:41:14 · 268 阅读 · 0 评论 -
2020.08.07【NOIP提高组】模拟:树环转换 总结
2020.08.07【NOIP提高组】模拟:树环转换 总结Description给定一棵NNN个节点的树,去掉这棵树的一条边需要消耗值111,为这个图的两个点加上一条边也需要消耗值111。树的节点编号从111开始。在这个问题中,你需要使用最小的消耗值(加边和删边操作)将这棵树转化为环,不允许有重边。环的定义如下:(1)该图有NNN个点,NNN条边。(2)每个顶点的度数为222。(3)任意两点是可达的。树的定义如下:(1)该图有NNN个点,N−1N-1N−1条边。(2)任意两点是可达的。I原创 2020-08-08 15:24:43 · 167 阅读 · 0 评论 -
2020.08.07【NOIP提高组】模拟:海明距离 总结
2020.08.07【NOIP提高组】模拟:海明距离 总结Description对于二进制串a,ba,ba,b,他们之间的海明距离是指两个串异或之后串中111的个数。异或的规则为:0 XOR 0=00\:XOR\:0 = 00XOR0=01 XOR 0=11\:XOR\:0 = 11XOR0=10 XOR 1=10\:XOR\:1 = 10XOR1=11 XOR 1=01\:XOR\:1 = 01XOR1=0计算两个串之间的海明距离的时候,他们的长度必须相同。现在我们给出NNN个不同的二进制串原创 2020-08-07 14:59:47 · 131 阅读 · 0 评论 -
2020.08.07【NOIP提高组】模拟:回文子序列 总结
2020.08.07【NOIP提高组】模拟:回文子序列 总结Description回文序列是指左右对称的序列。例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是。我们会给定一个N×MN\times MN×M的矩阵,你需要从这个矩阵中找出一个P×PP\times PP×P的子矩阵,使得这个子矩阵的每一列和每一行都是回文序列。Input第一行有两个正整数N,MN, MN,M。接下来是NNN行,代表一个N×MN\times MN×M的矩阵,矩阵的每个元素都是值不超过3141592631415原创 2020-08-07 14:49:04 · 246 阅读 · 0 评论 -
2020.08.06【NOIP提高组】模拟:统一天下 总结
2020.08.06【NOIP提高组】模拟:统一天下 总结DescriptionInputOutputSample Input4 41 32 14 34 34 11 2Sample Output68Data Constraint总结比赛思路: 暴力枚举连接的两个点并暴力求点对距离之和,时间复杂度为O(n4)O(n^4)O(n4)。正解: 设fW,xf_{W,x}fW,x表示树WWW的xxx结点到其它树WWW的结点的距离和,gWg_{W}gW表示WWW这棵树的最小原创 2020-08-06 21:10:10 · 143 阅读 · 0 评论 -
2020.08.06【NOIP提高组】模拟:最优交换 总结
2020.08.06【NOIP提高组】模拟:最优交换 总结DescriptionInputOutputSample Input21432 24321 2Sample Output43124321Data Constraint总结比赛思路: 想了一个错的贪心。正解: 每一次我们看一下最大的位置是否可以移动到第一格,不可以就用次大的,第三大的,以此类推……可以的话就贪心移动,并将此操作重复至下一格。时间复杂度为O(Tn2)O(Tn^2)O(Tn2),可以过。...原创 2020-08-06 14:28:59 · 160 阅读 · 0 评论 -
2020.08.06【NOIP提高组】模拟:刷题计划 总结
2020.08.06【NOIP提高组】模拟:刷题计划 总结DescriptionInputOutputSample Input10000 122 132 999931 132 132 1000032 99993Sample Output19999 19999999910000 99999999 10000Data Constraint总结比赛思路&正解: 暴力模拟,用hashhashhash或者离散化进行判重,时间复杂度为O(m2)O(m原创 2020-08-06 14:22:19 · 257 阅读 · 0 评论 -
2020.08.05【NOIP提高组】模拟:俄罗斯套娃 总结
2020.08.05【NOIP提高组】模拟:俄罗斯套娃 总结DescriptionInputOutputSample Input10 1000Sample Output3628800Data Constraint总结比赛思路: 暴力全排列枚举。正解: 设fi,jf_{i,j}fi,j表示前iii个数,逆序对数为jjj的方案数。可得fi,j=∑l=0i−1fi−1,j−l\begin{aligned}f_{i,j}=\sum_{l=0}^{i-1}{f_{i-1,j-l}}\e原创 2020-08-06 07:36:24 · 159 阅读 · 0 评论 -
2020.08.04【NOIP提高组】模拟:Lala买面包 总结
2020.08.04【NOIP提高组】模拟:Lala买面包 总结Description众所周知,lala是一名非常喜欢看天线宝宝拉拉吃面包的高中生,在经过无数次的重播那堪称经典的画面之后,lala终于感到看不下去了,决定自己也去吃回面包。于是lala来到了一家面包店,但由于这家面包店的面包实在太多了,lala难以选择该买哪些面包,但这自然难不倒机智的lala,他先给每种面包定了一个美味度,并只购买美味度能表示成xpx^pxp(x,p均为大于等于2的正整数)的面包,但即便如此,lla还是难以快速地知道该原创 2020-08-04 22:04:54 · 229 阅读 · 0 评论 -
栈 题解
栈解题方法这道题目是动态规划。可以得动规方程fi=fi−1∗(i∗4−2)(i+1)f_i=\frac{f_{i-1}*(i*4-2)}{(i+1)}fi=(i+1)fi−1∗(i∗4−2)。原创 2020-07-21 19:24:49 · 219 阅读 · 0 评论 -
火星人 题解
火星人解题方法这道题目我们直接暴力dfs mdfs\:mdfsm个数字就行了。原创 2020-07-21 19:24:17 · 264 阅读 · 0 评论 -
FBI树 题解
FBIFBIFBI树解题方法这道题目我们用一个类似线段树的方法来存这棵树(堆),然后就直接二分即可。原创 2020-07-21 19:23:01 · 169 阅读 · 0 评论 -
花生采摘 题解
花生采摘解题方法这道题目我们直接按花生量排序并贪心即可。参考这里。原创 2020-07-21 19:22:16 · 360 阅读 · 0 评论 -
统计蚂蚁 题解
统计蚂蚁解题方法设fi,jf_{i,j}fi,j表示前iii种类型的蚂蚁用了jjj个的方案数。则fi,j=∑k=0nifi−1,j−k\begin{aligned}f_{i,j}=\sum_{k=0}^{n_i}{f_{i-1,j-k}}\end{aligned}fi,j=k=0∑nifi−1,j−k但是由于jjj可能小于nin_ini,所以fi,j=∑k=0min(ni,j)fi−1,j−k\begin{aligned}f_{i,j}=\sum_{k=0}^{min(n_i,j)}原创 2020-07-20 19:11:48 · 162 阅读 · 0 评论 -
卫星图片 题解
卫星照片解题方法就是求联通块的最大大小。直接对于每一个没有标记的点进行dfsdfsdfs,并遇到一个新的点就标记和答案加一。时间复杂度为O(n2)O(n^2)O(n2)。原创 2020-07-20 19:10:56 · 358 阅读 · 0 评论 -
跳房子 题解
跳房子解题方法这道题目我们开一个100000010000001000000的数组。然后直接深搜即可。每一次有一个新的数,答案就加一。原创 2020-07-20 19:10:04 · 418 阅读 · 0 评论 -
谷仓的安保 题解
谷仓的安保解题方法这道题目我们直接搜索即可。首先将输入的字符排序。然后暴力搜索(类似全排列)就行了。注意:到了250002500025000个之后要关闭程序。原创 2020-07-20 19:08:42 · 917 阅读 · 0 评论 -
WING 题解
第四题:WINGWINGWING解题方法这道题目是标记数组。我们设ai,ja_{i,j}ai,j表示第iii种字符在第jjj个位置的答案。分两种情况:为111我们只要发现这个字符串的某个字符的位置的数组aaa为000,就说明没有出现过,输出−1-1−1。否则就取答案最大的——因为必须满足所有的字符。为000我们看一下这一位是否是的aaa为000,如果为000,就更新。否则不更新。总的时间复杂度为O(nc)O(nc)O(nc)。...原创 2020-07-16 18:28:22 · 98 阅读 · 0 评论