2019备战CSP(NOIP)停课集训小结

2019.11.4

吐槽

我做了套假比赛。

赛时

T1:给你一个 n ∗ n ∗ n n*n*n nnn的空间,有些点有障碍,问从原点走到nnn方案。
一开始,不就是容斥水题吗?
那就容斥障碍,设 f [ i ] [ j ] f_{[i][j]} f[i][j]表示当前选了i个障碍,最后选的是j的方案数。
等等,似乎我怎么做都是 m 3 m^3 m3的。
冥思苦想。
诶,好像可以这么设 f [ i ] f_{[i]} f[i]表示当前走到第i个障碍,且途中合法。
那就按照拓补序来走即可!
结果T成60。心态崩了。

T2:给你 n ∗ m n*m nm的矩阵有很多颜色,然后划出很多个 k ∗ k k*k kk的矩阵,要求求出其中颜色种类最多的&总和
70分似乎是送的?
100分难道要打带修主席树?
70分拿完滚蛋。

T3:给你一个神奇的矩阵:见下图,然后求其逆矩阵的元素的平方和
在这里插入图片描述
一开始似乎突然想起symbol以前讲过用什么余子式行列式之类的搞逆矩阵。
看到时间不多了,翻翻定义然后开码。
过了样例无脑交。
爆0了。

小结

这次比赛在T1卡太多时间了,而且常数也打得太丑了。
导致后面两题都没有太多时间搞。
尤其是T3,其实推出逆矩阵就很easy了。
策略还是有问题的。

粗略题解

T1:见上

T2:考虑 O ( n 3 ) O(n^3) O(n3)的方法,枚举一列,然后再这中间把方块每次往下移。
然后考虑优化这个玩意。
考虑一列一列往右移动,移动时对于一个元素a,只需要考虑它在每行分布情况。
每次加入一列,就利用一些神奇的数据结构例如spaly、set之类的来维护当前元素的前驱与后继。然后修改被它影响的方块即可。
删除一列是同理的。
但似乎空间+时间都卡得很紧,bitset应该是最佳选择。

T3
首先,由于该矩阵是三角矩阵,有很多巧妙的性质。利用求逆矩阵的方法可以做到 O ( n 2 ) O(n^2) O(n2)求出逆矩阵。
大概就是 A − 1 = 1 ∣ A ∣ ∗ A ∗ A^{-1}=\frac{1}{|A|}*A^* A1=A1A
乱搞即可,注意组合数预处理。

求出来后可以惊奇的发现:
在这里插入图片描述
理性证明?那就推柿子:
设 P ∗ P − 1 = A 设P*P^{-1}=A PP1=A
A ( i , j ) = ∑ k = j i P ( i , k ) − 1 ∗ P ( k , j ) A_{(i,j)}=\sum_{k=j}^iP^{-1}_{(i,k)}*P_{(k,j)} A(i,j)=k=jiP(i,k)1P(k,j)
= ∑ k = j i ( − 1 ) i + k ∗ i m ∗ C i k ∗ 1 j m ∗ C k j =\sum_{k=j}^i(-1)^{i+k}*i^m*C^k_i*\frac1{j^m}*C^j_k =k=ji(1)i+kimCikjm1Ckj
然后两个组合数可以理解为:在i纸上,选出k张纸染黄色,再把这k张纸中j个染成红色。而且中间的 i m i^m im
推得:
= ∑ k = j i ( − 1 ) i + k ∗ i m ∗ 1 j m ∗ C i j ∗ C i − j k − j =\sum_{k=j}^i(-1)^{i+k}*i^m*\frac1{j^m}*C^j_i*C^{k-j}_{i-j} =k=ji(1)i+kimjm1CijCijkj
= ( − 1 ) i + j ∗ i m ∗ 1 j m ∗ C i j ∗ ∑ k = j i ( − 1 ) k − j ∗ C i − j k − j =(-1)^{i+j}*i^m*\frac1{j^m}*C^j_i*\sum_{k=j}^i(-1)^{k-j}*C^{k-j}_{i-j} =(1)i+jimjm1Cijk=ji(1)kjCijkj
= ( − 1 ) i + j ∗ i m ∗ 1 j m ∗ C i j ∗ ∑ k = 0 i − j ( − 1 ) k ∗ C i − j k =(-1)^{i+j}*i^m*\frac1{j^m}*C^j_i*\sum_{k=0}^{i-j}(-1)^{k}*C^{k}_{i-j} =(1)i+jimjm1Cijk=0ij(1)kCijk
这时候,我们惊奇地发现,右边那个西格玛只用当i==j时才=1,否则都是0.
那么就得到:
A [ i ] [ j ] = [ i = = j ] A_{[i][j]}=[i==j] A[i][j]=[i==j]

这还是 O ( n 2 ) O(n^2) O(n2)的。
然后,我们就考虑对于这个东东进行再优化。
由于是平方和,所以画到最后只是那个组合数很难求。
但是,这里有个公式:
在这里插入图片描述
为什么呢?可以这么理解:有两个盒子,每个盒子可装n个苹果。现在一个盒子是满的,另外一个是空的,求从满的盒子中取i个苹果放入空盒的方案。
于是就愉快解决啦。

2019.11.5

吐槽

今天还算是正常。NOIplus

赛时

T1:首先把n个数字每两个匹配,匹配出 n ∗ ( n − 1 ) 2 \frac{n*(n-1)}2 2n(n1)种方案,比如:(1,2)(1,3)(1,4)……(1,n)(2,3)(2,4)……。然后,列成一个 n − 1 ∗ n 2 n-1 * \frac n 2 n12n的方阵使得每一列没有元素是重复出现的
举个例子就是:
当n=4时:
答案:
1 2 3 4
1 3 2 4
1 4 2 3

比赛时构造了好久,没有头绪。
突然灵机一动想出一个 n 3 n^3 n3的方法,大概就是每一行都找几个方案。
结果发现似乎枚举顺序对此有很大影响。
调了半天还是没弄出来。
30分滚粗。

T2:给你一棵树,然后再上面放上n个数字,然后定义一个好点:当前点到根路径上的点都比他小。然后答案即为 ∑ k c \sum k^c kc(c为某种方案中的好点个数)
比赛没有多少思路?
20分都不会。
只会40分链的情况(???)

T3:给你一个由abc三种字符组成的字符串,现在有一种操作是选出其中相邻的两个不同的字符,把他们两都变成另外的一个字符。问可构造出多少种不同字符串
同样没有什么想法,本想着可以n!暴力玩30分的,结果似乎打错了边界条件?
爆零了。

小结

今天分数还是不太好看。
T1花的时间还是比较多。
似乎题目难度不是正常顺序。
(T2尤其难,T1T3看完题解都会了)
明天得换个策略来应付打比赛了。

出略题解

T1
找规律或是用一些奇怪的构造方法。
题解贴上:
在这里插入图片描述
T2
有两种做法:
1、题解的外向树DP
首先外向树大概就是一棵树的边变成有向的(连向儿子)
然后我们考虑这么搞:对于某种情况,硬点某些点为好点,那么非好点就连边连向上面的好点,上面的好点就连向下面的好点。
接下来,考虑把非好点都容斥成往下的边,于是就变成了外向树。
由于答案的贡献只是关于树的大小的。
记录即可。
实际打起来应该特别地难打。

2、ColdChair大爷的神奇DP
考虑一个神奇的转化:
由于答案是求刚好等于c时的 k c k^c kc,这个则可以利用一个套路变成:
求至少为c时的 ( k − 1 ) c (k-1)^c (k1)c
证明?二项式展开:
k c = ∑ i = 0 c C c i ∗ ( k − 1 ) i k^c=\sum_{i=0}^cC_c^i*(k-1)^i kc=i=0cCci(k1)i
所以,右边就是 ( k − 1 ) c (k-1)^c (k1)c再乘上一个系数。
实现转化。
那么接下来我们考虑怎么用这个。
f [ i ] [ j ] f_{[i][j]} f[i][j]表示当前以i为根的子树,其中第j大的点是第一个出现的好点的答案。
鉴于之前那个至少的结论,我们可以每次对于一个点x,把它的儿子们都合并之后更新x。
一直更新上去,即可。

一些小细节:
对于合并,考虑一个儿子 f [ a ] [ p ] f_{[a][p]} f[a][p],硬点其以p为好点,把另一个儿子 f [ b ] [ q ] f_{[b][q]} f[b][q]合并上去。
那么我们考虑枚举一个k表示把b儿子中前k大的都插入到a儿子p前面,其余的都插到后面。
那么合并的贡献即为 f [ a ] [ p ] ∗ f [ b ] [ q ] ∗ C ( k , p + k − 1 ) ∗ C ( s i z b − k , s i z a − p + s i z b − k ) f_{[a][p]}*f_{[b][q]}*C(k,p+k-1)*C(siz_b-k,siz_a-p+siz_b-k) f[a][p]f[b][q]C(k,p+k1)C(sizbk,sizap+sizbk)
以q为好点同理。
然后这样转移是 O ( n 3 ) O(n^3) O(n3)的,然而我们发现,合并时其实是一段区间的。
那么就可以利用前缀和来优化优化。

合并完之后别忘了对于x的贡献也要算。

T3
其实搞出一个结论就很简单了。
设a=0,b=1,c=2;
我们发现,无论如何变化,总和%3都是一样的。
由于如果变化1次之后,必定有两个相同的连在一起。
利用这个玩意进行DP
f [ i ] [ a ] [ b ] [ c ] f_{[i][a][b][c]} f[i][a][b][c]表示当前做到第i为,和%3等于a,当前填b,是否有连在一起的。
然后就愉快转移。

2019.11.6

吐槽

发现自己蠢得一匹。

赛时

T1:给你一个图,求出其中所有组成简单环的边的编号异或值
题面真的含糊不清。
比赛时其实没有什么想法,看到 n 2 n^2 n2就直接打了个70分。

T2:有n本书,每本书有价格。然后总价格为w,第一本书的价格为x,在这之后每本书的价格要么是上一本价格+A,要么是-B。现在就问一种构造方法。
其实这题非常简单。
一开始考虑所有的书都是+A的。
然后就考虑把某本书从+A变成-B。
这样就从左往右依次变化即可。
由于书价格可以为负数,我成功把负数的情况判掉了。
话说谁™卖的书价格是负数的?!!

T3:现在有很多的点,有s个点是确定的。现在有m个区间,每个区间中有k个特殊点。这些特殊点是比其区间内非特殊点要大的。然后要你构造。
又是构造题。
看到30分就秒了,直接把每个点连向比他大的点。
直接拓补或是bfs即可。
然后刚了好久,发现连边似乎特别慢。
诶,不是有个套路是用线段树优化连边吗?
等等,似乎只剩10分钟了。
应该打不出来。
检查前面题去了。

小结

今天比赛还是出了一些小锅。
这次比赛的理解难度巨高,而且T1果然又是最难的。
话说本来T2放到是原题,还是我做过的,很多人似乎没做过。然鹅换了之后变成我没切了。
其实也好,教训++。
遗憾就是T3最后时间太少了,如果多些时间其实可以拼一拼的。

初略题解

T1
其实求一遍点双连通分量即可。
把边数大于点数的块去掉即可。

T2
见上。
当然,你也可以用二元一次方程解一解。
恭喜zjl利用打表成功学会如何解二元一次方程。

T3
线段树优化连边即可。
大致就是对于一个询问新开一个点,然后把 k [ i ] k_{[i]} k[i]的点连向这个新点,标上1表示严格大于新点。然后把剩余连续的区间在线段树中找出来后,新点连过去,标上0表示大于等于。
然后就拓补即可。
(话说数组开小调了半天,心态没了)

2019.11.7

抱歉,今天比赛咕咕咕了。

今天由于校运会的缘故,等到抽空来到机房是,比赛还只剩下1小时的。
当然,也没有多少心情想打,然后就学了学反演。
灰常兴奋。

明天就要好好打了。(虽说明天还是校运会)

2019.11.8

吐槽

昨晚似乎睡得极不好。
逃离校运会后,本想提提神,听了一会Severe Tire Damage,感觉整个人都有点像是在执行秘密任务。

赛时

T1:给你n个点,求任意三个点围成的三角形的面积和
看到数据范围就开始想 O ( n 2 ) O(n^2) O(n2)
三角形面积不是可以叉积算吗?
算着算着突然发现柿子可以用一个类似于前缀和的东东优化。
那就开打,打着打着发现需要用极角排序。
那就排,好,过了样例。
那就拍,好,小数据都没有问题。
那就大数据。结果突然发现好像挂了。
?!!

什么玩意?玩了好久,发现似乎这题还™的卡精度?
调了好久,才终于过了自己出的大样例。
成功A掉。

T2:有很多的sb要杀人,每个人只会杀一个想杀的人(可能会自杀)。然后把这些人按照一定的顺序放入一个箱子,一旦放入一个,它就会立即杀掉想杀的人(已经死了就不鞭尸了)。问最少和最多会死多少个人。
最多不是水的吗?直接让他们能杀即杀,只剩下那些没有入度的点。
对于一个环,那就可以杀剩一个人。

最少的话想了比较久。主要是卡在几个点连向一个环的情况。
后来才发现,原来一个活人后面必定跟着一个死人。而由于尽量让活人多,所以一定是最早把那个死人杀掉,不让他祸害别人。最后到那个环上是死人时,就把这个点删掉即可。
环就是可以生还 s i z 2 \frac{siz}2 2siz

那就开打。
最后似乎多判了一种sb情况,还得了90分。
令人震惊。

T3:给你一字符串,然后求出最长的前缀和后缀,使得这两个字串的循环重构相同。
比赛理解错题了,结果1分不会。
输出0滚粗。

小结

这次比赛虽说做的题都比较水,但是还是不够细心啊。
尤其是读题,一定要读准确才行。

醋略题解

T1
我们枚举一个点,把它变成原点。
那么再选其余两个点时利用叉积可以得到面积公式: S = ∣ y 2 ∗ x 1 − x 2 ∗ y 1 2 ∣ S=|\frac{y2*x1-x2*y1}2| S=2y2x1x2y1
我们惊奇地发现,在某种枚举顺序下,那个x1和y1可以利用前缀和优化掉。
所以就极角排序!注意精度即可。

T2
见上

T3
我们考虑一种合法方案必定是有一个转折点i:
在这里插入图片描述
使得两个A相等,两个B相等。
那么我们就枚举这个i,同时设 f [ i ] f_{[i]} f[i]表示当前转折点为i时,后面B串最长长度是多少。
那么我们考虑怎么弄这个B。
假设我们现在从i要更新i+1,那么:
在这里插入图片描述
可知,B串至少是要左右都缩小一格。 f [ i + 1 ] > = f [ i ] − 2 f_{[i+1]}>=f_{[i]}-2 f[i+1]>=f[i]2
移一下项:
f [ i + 1 ] + 2 > = f [ i ] f_{[i+1]}+2>=f_{[i]} f[i+1]+2>=f[i]
那么就倒过来做即可,每次更新 f [ i ] f_{[i]} f[i]时,从 f [ i + 1 ] + 2 f_{[i+1]}+2 f[i+1]+2往下更新,找到一个最大的即可。同时利用hash来维护是否相同即可。时间是 O ( n ∗ 常 数 ) O(n*常数) O(n)的。

2019.11.9

今天木有比赛。

然后我就晚上加班打了一哈Comet OJ。
简单小结一下。

赛时

题意自己去看。
T1
一眼还以为看错题了。
好吧,直接两个指针维护即可。
一开始大样例没过,那就调。调了一(chao)小(ji)会(jiu)就过了。
那就交一发,成功A掉。

T2
一眼,这题不是™地做过吗?
直接最小生成树+LCA就好了。
结果,由于LCA打错,调了一(chao)小(ji)会(jiu)。
也就打+调1.5h

T3
第一眼。似乎不会。
推推柿子,诶,似乎可以线段树维护一下系数。
有64分诶~

紧接着,symbol走了进来。“我们开个小会。”
好,也就花了30分钟。
剩下10分钟,弃疗吧。

小结

这次心态没有调正。
下次要好好努力。

话说那个597不是一直高调地说自己AK吗?还不是T1爆零。
滑稽

促略题解

T1
直接两个指针维护即可。要注意一些小细节。

T2
由于是 2 i 2^i 2i。所以最小生成树即可。然后LCA。

T3
题解是矩阵维护。其实线段树就好了。(本质是一样的)
在这里插入图片描述
在这里插入图片描述

2019.11.10

吐槽

这次跑到空教室去做,感觉自己真的是漏洞百出。

赛时

T1
在这里插入图片描述
逐渐懒惰。
一看,T1不是直接随便求出概率后乱搞吗?
那就打。打+调1h。心想可以过。
反正也不知道怎么拍,那就放放。
T2
在这里插入图片描述
比赛还以为是什么缩点后跑DP。
最后是因为T3灵感大发而没有去搞。
T3
在这里插入图片描述
比赛一看,当然上链剖。维护的话还以为是主席树。但是显然主席树搞不了max。
再想想。诶,不是分块就好了吗?似乎时间是10s,那就再套上个线段树合并。
掐指一算,好像是6亿诶~(其实是60亿)
结果巨难打,打到最后10分钟,还是没有调过去大样例。
于是就放弃了。

结果最后,T1由于最后统计答案时搞挂了,40分。T2蜜汁RE?T3蜜汁RE?
好,我人没了。

小结

这次比赛时真的是漏洞百出。
不仅策略没有搞好,而且还莫名紧张,还出了很多奇怪的错误。
最后也是无脑肝T3,前面出的很多大错都没有去拍/调。

简单来说:
在这里插入图片描述

簇略题解

T1
考虑利用bfs来求出所有势力在某个位置的出现概率。
求粗来后可以利用容斥。把总方案减去一次都没有经过的和只经过一次的。

T2
考虑把关键点都建一个超级源,跑一边dij后得到他们到达某个点的最短路。
再把边反着建一遍,跑一遍。
这样之后就可以枚举某条边后拿两端的顶点更新ans。
千万不要打spfa。(不知道出题人和spfa有什么仇)
在这里插入图片描述
T3
可以树分块!
(比赛时想到一个神奇的树分块。结果玩着玩着玩脱了。时间约等于暴力)
好吧。是我想多了。

考虑在树上搞出S个关键点。
预处理两个数组:
a n s [ i ] [ j ] ans_{[i][j]} ans[i][j]表示第i个关键点到第j个关键点的众数是什么。
f [ i ] [ j ] f_{[i][j]} f[i][j]表示第i个关键点到根路径上第j种数字出现次数。
这样。我们就可以分各种情况讨论啦。
我们可以用ans来求整块的答案。求完后枚举散块的种类,再用f来维护即可。

小细节真的巨多无比,也就打了我一小(zheng)会(tian)。

2019.11.11

吐槽

今天双十一?雨我无瓜。
结果比赛依旧爆炸。

赛时

T1
在这里插入图片描述
这题比赛我考虑了一哈找规律,找了一(chao)小(ji)会(jiu)都没有找出来。
那就放弃了,打了个暴力。
f [ i ] [ 0 / 1 ] f_{[i][0/1]} f[i][0/1]表示当前长度为i的如果根伸出去和不伸出去的两个答案。
然后就从 n / 2 n/2 n/2 n − n / 2 n-n/2 nn/2这两种情况转移。
然鹅我们发现,重复的情况很多。
于是记忆化搜索+hash就好了。

(话说linux下定义hash会CE。233)

T2
在这里插入图片描述
比赛没有什么思路。只会20分的网络流。
我™是sb才会去打吧!
然后就爆肝70分。发现肝不出来。
剩下一点点时间随便搞了20分就交上去了。

结果爆0。

T3
在这里插入图片描述
好吧,只会签到分3分。

小结

这次比赛在T1&T2花的时间有点多。而且投资收益很差。
这很不好。其实T3m=0的情况是送的,可以多拿些分的。
想的时间太多,下次要规定一段时间来想题。

猝略题解

T1
见上

T2
考虑贪心。
我们考虑一个点的高度为他到他最远儿子的距离。
那么我们一层一层来看,那么每一层我们就是选其高度前 l l l大的点。
(其实这个本质上是长链剖分)

那么这个我们可以用堆或者用桶来维护。

T3
现在还不是太会,以后来补。

2019.11.13

吐槽

今天真的是信心赛。
让信心都消散的比赛。
逐渐忘记如何打比赛。。。
在这里插入图片描述

赛时

T1
在这里插入图片描述
这该*的出题人,竟然连个样例都木有。而且题意也坑了我好久。
(我一直以为那些线段是不能相交的)
结果调了近2h才发现有相交的情况。
我¥#@%……&!

这还是NOIP吗?

T2
在这里插入图片描述
这题一看,诶,好像qnDP可以拿70+分。
然鹅头铁T1没有时间去多想+打。

T3
在这里插入图片描述
当然,没怎么想。
话说为什么你们都知道这是GDKOI(R.I.P.)2018年的D2T2啊。
我都没有任何印象(其实我没去)

小结

这次比赛犯了个两个严重错误。
1、没有认真审好题(题不给我审,让我情何以堪)
2、头铁T1了(被597传染了)
所以这次比赛给我的人生经验很多啊。(比长者给的还多)
虽说这本质上是NOI模拟的比赛比较难,但是比赛策略还是要稳定。
以后打比赛就不要死磕正解了。

话说为什么最近出题人那么厌恶SPFA?
在这里插入图片描述
难道说这是暗示CSP会有一道最短路题,而且不让SPFA过吗?
在这里插入图片描述

蹙略题解

T1
我们考虑把每个右端点弄出一个左端点表示:这个左端点是最右边的一个点满足其到右端点之间合法。
那么这个可以用一个单调队列来维护。
维护完了以后,我们可以考虑这个东东长什么样。
我们发现,如何这个右端点与左端点-1的位置连边,就可以形成一颗树。
那么答案就是两个点的LCA的深度。

妙啊♂

T2
我们考虑一个东东:
f [ i ] f_{[i]} f[i]表示恰好用了n个颜色旗子的方案。
g [ i ] g_{[i]} g[i]表示最多用了n个颜色旗子的方案。
那么我们可以列出柿子:
g ( n ) = ∑ i = 0 n f ( i ) ∗ C n i g(n)=\sum_{i=0}^nf(i)*C_n^i g(n)=i=0nf(i)Cni
通过二项式反演可得:
f ( n ) = ∑ i = 0 n ( − 1 ) n − i ∗ C n i ∗ g ( i ) f(n)=\sum_{i=0}^n(-1)^{n-i}*C_n^i*g(i) f(n)=i=0n(1)niCnig(i)
那么现在问题就转化为求这个g。

我们当然会求一个比较简单的DP。但是时间复杂度是 O ( n ∗ q ) O(n*q) O(nq)的。
(虽说这足以过掉90分的数据)
我们考虑优化这个n。

考虑线段树维护这个动态DP。
对于线段树每个节点,设一个状态 f [ k ] [ i ] [ j ] f_{[k][i][j]} f[k][i][j]表示这个区间内从高度为i的房子开始插旗,到高度为j的房子结束,最多插了k个旗子的方案数。

现在问题只是合并和修改。
合并我们只需要枚举一个k,然后再枚举要合并的两个状态的i和j,满足他们之间不递减即可。
修改的话就是要用二项式定理快速修改一段区间。

小细节比较多,但也很好打。

T3
现在还不太会,先贴一贴题解。
在这里插入图片描述

2019.11.14

吐槽

今天水法使我身心愉悦。
在这里插入图片描述

赛时

T1
mdzz题解那么长一段就是为了告诉我们:
给你一个n个点m条无向边的图,每条边容量为1,每个点度数最多为3.
问任意两个点之间的最大流为多少。

一开始还没有什么思路。
想了想d=2的数据,发现只有环+链的情况。
然后就从环那里下手。
然后惊(cuo)奇(wu)地发现,似乎在每个环里面任意两个点之间的最大流就是边双的度数大小的min值。
结果打完后过了第二个样例。心极度高兴。结果最大的样例怎么也过不去。
最后放下,去攻T2T3,直到比赛快结束时才发现是错的。

但是!数据还是让我这个sb水法过了60分。

T2
经典小学奥数题。给你一个由很多个小方块组成的几何图,然后可以把一些重新排列组合,要求其三视图不变的情况下,最多可以移除多少块。

比赛也是直接贪心了。考虑求出行的最大值与列的最大值。
把两个相同的匹配即可。
感觉似乎直接贪心好像也没什么问题,匈牙利也没多想。就不管了。

戏剧性的是:随手出了个数据就挂了。更戏剧性的是:这玩意儿能过(虽说我没有判掉0的数据只拿了80分)

T3
给你一段序列。
每次询问一段区间内,任意长度的区间的f值。
f值是:
在这里插入图片描述

随便拿个35分滚蛋。
因为大数据跑得慢,那就加些奇怪优化。
结果似乎清空判断数组时搞错了,3分。GG

小结

这次比赛比较舒服。
(话说不要这么快用完RP啊。)
但也是有些问题的。
比如T1、T2其实离正解很近了,没有细想。
T3也是做得比较潦草。
这些小问题要注意。

卒略题解

T1
其实d<=2的情况就缩边双即可,但是d=3的情况比较棘手。
两点不连通,ans=0
两点联通但不在一个边双内,ans=1
其余的是ans=2/3
其实我们缩完边双后,在一个边双里删掉一条边后,又会变成很多条边双连在一起。
那么就变成上面d<=2的情况。

可以想想d=4怎么做。

其实d=2000都没问题,直接建一颗最小割树就好了。

T2
见上,弄个匈牙利即可。

T3
神奇的线段树
在这里插入图片描述

总结

还要一天,那就准备NOIPCSP吧。
三部曲:看题,想题,自闭。

还要注意的一些小细节:

策略

首先,开场15~25min看题,审题(千万不能审错)
问老师?上一年惨痛教训。还是问问吧。(反正他又不能把我吃了,不回答就算我倒霉)
先打比较简单、比较稳重的题。
定一个上厕所线,比如码+调了1h的题就放放,去打别的题。
打完一定要对拍。(symbol的概率论)
比赛最后一定要检查文件之类的,不要再肝了。
30分钟attention!20分钟差很多的丢掉。10分钟就停了。

小细节

首先,这个要好好看看:
好东东
一定要开longlong
输出longlong要用%lld(ColdChair惨痛教训)
文件名。(初二date惨痛教训)
空间复杂度计算:
在这里插入图片描述
(转的)
然后就乘数组大小,如果是MB,那就除以 102 4 2 1024^2 10242
要相信:CSP不卡栈

hash模数:19260817!!!

套路

这个随缘。

板子

回家好好去搞搞吧。
读入优化(其实CSP应该不用,不然Pascal选手哭晕厕所)
对拍、Tarjan、网络流。(似乎没了)

文化课

他死了。

带什么?

身份证、准考证。
水杯、荷氏(没有一颗荷氏解决不了的题,如果有,就两颗!)、衣服。
笔、尺子、橡皮擦……
还有!
人、脑子、心态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值