- 2024-10-15Natasha, Sasha and the Prefix Sums
Natasha,SashaandthePrefixSums设\(g(x)\)表示\(f(a)=x\)的个数,那么\(ans=\sum_{x=\max(0,n-m)}^{n}xg_x\)。恰好不好求,我们求\(h(x)\)表示\(f(a)\lex\)的个数,\(g(x)=h(x)-h(x-1)\)。1表示向上走,-1表示向下走,\(h_i\)就是求从\((0,0)\)走到\((n+m,n-m)\)
- 2024-08-16Sasha and Array
维护斐波那契数列乘上一个矩阵可以快速得出斐波那契数列这个比较简单~cpp#include<bits/stdc++.h>#defineclosestd::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)usingnamespacestd;typedeflonglongll;constllMAXN=3e5+7;constllmod=1e9+
- 2024-07-19D. Sasha and a Walk in the City
原题链接题意树中任意一条路径上黑色点的数量不超过两个,请问存在多少种树分析先随便找一个节点作为根节点,然后分类讨论假如根到叶子节点的路径上有两个黑色节点,则不能再添加其他点了如果根到叶子节点的路径上有一个黑色节点,则可以还可以在不在这条路径上的地方放黑色节点在
- 2024-04-06CF1929B Sasha and the Drawing 题解
CF1929B题意给定一个\(n\timesn\)的正方形,已知正方形最多有\(4\timesn-2\)条对角线,要求要有至少\(k\)条对角线经过至少一块黑色方格,求至少要将几条对角线涂成黑色。分析分类讨论:当\(k<=4\timesn-4\)时,就只需要在上下两侧图就行,所以答案是\([\frac{k}{2}]\)。当
- 2024-03-28C. Sasha and the Casino
原题链接题解1.要确保任意回合赢回来的钱都要比之前下注的钱的总和要多令\(b_i\)为第\(i\)回合下注的钱,则有\(b_i·k>\sum_{j=1}^{i}b_j\)则有\(b_i\ge\left\lfloor\frac{\sum_{j=1}^{i-1}b_j}{k-1}\right\rfloor+1\)为了尽可能地不把钱花光,选最小的\(b_i\)2.如
- 2024-03-23CF718C Sasha and Array
SashaandArray典题,但还是第一次见。首先看到斐波那契数列,可以想到矩阵快速幂。想到这一点之后,很大一部分都解决了。对于修改操作,实际上就是乘以一个矩阵。对于查询,就是矩阵加法。考虑用线段树维护矩阵。首先区间和可以矩阵加法直接做。由于我们需要区间乘,需要考虑如何下传标
- 2024-03-12CF1929E. Sasha and the Happy Tree Cutting
Problem-1929E-Codeforces无意看一眼标签是\(dp\)就一直朝树形状压\(dp\)的方向想了一年,发现不是树形\(dp\)设\(dp_S\)为完成集合\(S\)内的限制所需要的最少边数把每一对顶点的路径上每条边的值都状压,表示添加这条边可以实现的限制有哪些,记为\(b_i\)因
- 2024-02-20Sasha and the Happy Tree Cutting
题目只出现了一些关键点,所以想到虚树,我们对关键点建立虚树,会发现对虚树上的一条边\((u,v)\),在原图中\(u\)到\(v\)的路径只用最多选择一条就可以了,所以我们就发现,有效的边的个数就是虚树上的边,是\(O(k)\)的然后看一下\(k\)的范围,想到状态压缩,对每一个状态\(S\),枚举虚树中的每一条
- 2024-02-19Sasha and the Casino
这道题目真的是。。。赛时的时候想完全证明出来发现不行,其实根本不用,这种题目主打的就是一个感性理解,官方题解也没给出证明。。在这道题目卡了1h完大蛋,最后剩20min做D,然而D也只做了30min。。。我们手玩几组样例就会发现,他是想要在任意本金经历了无论多少场(\(≤x\))输之后,下一场赢
- 2024-02-19Sasha and a Walk in the City
先写一下官方题解首先原问题有一个很显然的解集:点集中任意两点不存在祖孙关系所以我们令\(f[v]\)表示以\(v\)为根的子树的点集的数目,这些点集中任意两点不存在祖孙关系有如果一个解集中有一个点是另一个点的祖先,我们画出图那么这个点上面的点(包括这些点的分支)是肯定不能选
- 2024-02-19Sasha and the Drawing
比较简单的一道思维题目,毕竟只有800分也是很典型的套路,首先讨论下界,发现每一个正方形最多影响两条对角线,所以可以发现答案的下界然后观察下样例,我们模仿一下样例,按照官方题解的说法,就是"sidecells"指左下和右下的两个正方形然后接下来,官方题解就说两个sidecells是包含两个
- 2024-02-18CF926 Div.2
C.SashaandtheCasino赌场规则:如果下注\(y(y>0)\)元,如果赢了则除了\(y\)元外,额外获得\(y\times(k-1)\)元,否则则输掉\(y\)元;并且你不能连续输超过\(x\)次最初,你有\(a\)枚硬币,询问是否能够赢取任意数量的硬币题解:思维考虑这样一种策略:假设前面一直输,保
- 2024-02-17Codeforces 解题报告(202402)
CodeforcesRound926D-SashaandaWalkintheCitydp,主要难点在于设状态。发现子树内一旦存在一个点,到当前子树的根节点路径上有两个危险点,那么除了那条链所属的子树,其他的点就都不能选了。所以把这个性质放进状态,设\(f_{u,0/1}\)表示以\(u\)为根的子树内,是否存在一
- 2024-02-16D. Sasha and a Walk in the City
D.SashaandaWalkintheCitySashawantstotakeawalkwithhisgirlfriendinthecity.Thecityconsistsof$n$intersections,numberedfrom$1$to$n$.Someofthemareconnectedbyroads,andfromanyintersection,thereisexactlyonesimplepath$
- 2024-02-16Codeforces Round 926 (Div. 2)
A-SashaandtheBeautifulArray给出的是差分的和,显然等于最后一个减掉第一个,于是答案为最大值减最小值。SubmissionB-SashaandtheDrawing观察到:前几次操作可以使答案\(+2\),之后每次只能让答案\(+1\)。手玩一下发现最优方案是先填满第一列,再从最后一列第二行填到倒