- 博客(50)
- 收藏
- 关注
原创 E. Counting Arrays
表示前i个点乘积为j的最小值。因为询问数很多,所以必须离线把所有的东西都处理出来。对于1而言,设每个非1的位置为k,那么就有k+1个空间给1插入。题意:给定一个长度为n,要求乘积为m,其中组成m的数要求是整数。那么相乘次数就不会超过20次,是log级别的。,考虑道空间会爆,所以可以把1先不考虑。思路:首先有个很显然的想法:设。对于负数而言,手玩一下发现是。
2024-11-22 21:31:21
260
原创 P11290 【MX-S6-T2】「KDOI-11」飞船
题目大意:有i种加油站,最开始速度为1,每次加油可以使速度*v,每次加油有一个时间代价,求到达终点所需最小时间。考虑计算答案,对于每一个终点而言,离它最近且不在它的位置上是最优的。因为这个点记录了前i个点的最优值。,所以速度是指数增长的,状态数不会很多。思路:不妨考虑dp,贪心是错误的。表示前i个加油站加到速度为。枚举每种状态即可,复杂度。表示继承前一个点的值。
2024-11-21 21:59:00
182
原创 D. Towers
首先有一个很贪的思路,在相同的合并操作数下,需要合并出来的数越小越好,这样后面的数就能以更小的代价跟它匹配。另外,如果一个数满足不降的条件,那么就没必要把它合并掉,这样显然不优。题意:每个数可以与前一个或者后一个点合并,使得数列被合并成单调不降的序列,求出最少的操作数。即是把题意转化成求最大划分连续序列数。表示前i个点能划分出来的最大次数,而。2.当前数与第j个数合并,使得。1.当前数与上一个数合并。
2024-11-13 18:18:13
147
原创 csp2024T3
summary:自己的t2很蒙,搞到t3只有1个小时多一点,实际想这一题只有30-40分钟,没有自己仔细调一调,导致暴力dp都没有写出来。,其他点就是把相邻两个数的值相等的贡献加起来。题目大意:对于每个数而言,可以将其染成红或蓝,对于每一个数,定义其贡献为。,当且仅当这个数最近的同色数与其相等,否则其贡献为0,求最大贡献和。,当然没看出单调性也可以套个线段树维护后面那个东西,本题不卡常。的单调性,可以知道这是单调递增的,每次以上次最后点为起点,策略3.两位之间的格子超过两位,,对于最左边的数,它的贡献是。
2024-11-05 20:57:08
334
原创 【MX-S4-T2】「yyOI R2」youyou 不喜欢夏天
思路:对于交换者,只有交换异色格子才能更优。所以对于每一个格子而言,如果采用异色连接全白的贡献为-1,全黑的贡献为2,求最大子段和一定不劣。考虑如果选中的一黑一白格子数目>2m,那么一定更优。但是每个格子受到上黑下白和上白下黑的影响,所以设。题意:两者博弈,有选取和交换上下两个数的两种策略,求博弈结果(黑色格子-白色格子)。此外,每个状态下还可以以i为新开头,计算最大子段和。表示在第i个格子分别表示全选,上,下的方案。
2024-11-01 21:51:55
165
原创 二分图学习
1.定义:可以将图分成两个互不相交的集合,使得在集合内部没有连上的边,而集合之间有连边。2.特点:唯一染色:可以被黑白两色染色,不会出现冲突,否则不成立。
2024-10-07 21:51:51
130
原创 B. 不知道该叫啥
题意:求长度为n的数列方案数,数列需满足两个条件:1.均为正整数。2.相邻两个数乘积不能超过m。双指针+数论分块解决。把每个m/i相同的值抽象成一个点,共同转移即可。从小块开始,另一指针从大块开始往前跳。表示在以j结尾(在第j块的最小值)
2024-08-24 16:36:22
218
原创 树链剖分学习
记录每一个点的遍历序(方便线段树访问,维护整个序列)。同时将权值映射到dfs序上。遍历时优先遍历重儿子,随后遍历轻儿子(链顶变成改点),维护每一条链的链顶。记录每一个点的深度,重儿子,子树数大小。其中重儿子需要与其他儿子点的权值大小作比较,并记录权值。的路径(加k),直到跳到相同链顶。修改子树(子树遍历序连续)。
2024-08-22 19:25:19
214
原创 A. X(质因数分解+并查集)
如果两个数有质因子相同,那么它们一定不能在不一样的集合之中(要满足互质条件)。这一类数中有效的书只有两个点。也就是把所有有公共质因子的数放到一起。结合质因数分解,复杂度。解法:考虑怎样必须将某几个数放进一个集合里。如果数列中全是1,那么每个数都是独立的,也就是可以随便拿出这之中的数字来组合集合,方案数。可以暴力筛出所有质数,记录每一个质数因子的对应质数,2.所有的1都要保留,其他根据公共质因子并查集合并。,i和j属于两个不同集合内。题意:给定一个序列,求。
2024-08-20 19:09:00
338
原创 D. 二进制
2.考虑如何维护十进制的值。显然,这一段的值与段长有关,这个数的值就等于。如果tag值为0,则十进制也等于0,二进制中的值等于长度乘以tag值。1.考虑第一种操作。只需要查询l-r中1的个数即可。终上所述,只需要维护一个01序列和加法线段树即可。中为1,需要一个覆盖tag。1.题意:给出2中操作。
2024-08-16 21:29:48
234
原创 8.9套题
题意:给定根节点k,求访问点的顺序,使得每次从上一个点到当前点的权值最大。访问过的点权值为0。权值一样时,输出最小编号思路:由于是双向边,先求根节点到每一个节点的距离值。在第一轮中,最深的叶节点一定为答案,那么这一条路径就被访问过了,权值变为0,这个叶节点相同路径上的其他点到根节点(最后一个未被标记的点)的权值就改变了。所以从最优的叶节点出发,dfs往上跳,直到访问到已经被访问过的点为止即可。最后排序更新后的权值。
2024-08-09 16:45:15
505
原创 6.22套题
题意:每次能在数列中能使相邻两个数-1,求当数列没有连续非0值的最小贡献。表示前i个数中前i-1个数是否为0,当前数是j的最小贡献。表示i+1以后减掉d的最小贡献。
2024-06-26 16:25:49
157
原创 tarjan学习
时,y是一个割点,x是y的一个子节点,当没有点x时,y无法访问其他点。时,y不经过这条边无法到达x,即是y在没有这条边的情况下无法访问x。题意:给出两个点a,b。求这两个点路径上的割点编号最小值。分析:a与b无法到达的点即为所求。满足时,父亲点位割点。1.割点(必须经过):当。2.割边(必须经过):当。
2024-05-14 21:02:08
247
原创 查分约束学习
由画图可知,如果有在i-1至j建立的有向图中跑最短路,那么dis[n]即为最小的约束变量。,可以知道如果x1+x2<=q,那么与j和i-1有关联。另外,给出m个约束条件,如果图中有环,则为非法。
2024-04-08 21:37:21
310
原创 解题报告3.16
题目大意:给出若干个点,求走到地图边界的最小代价。其中从0-1贡献+1。题目大意:给出一个长度为n的数列,要求将答案数列按顺序放进小根堆中。题目大意:给出若干个分布在两个竖直平面上的点,求连成连通图的最小代价。题目大意:求经过m次加法后的数列最小值。解法:将每个点与它相邻的点和另外平面。
2024-03-19 22:00:22
205
原创 分类并查集2-sat
题目大意:n种元素间有相等,相反的关系,元素可以被复制为T,F,求一种方案使得未知赋值U数量最少。题目大意:给出x是y的同类,x吃y两种关系,求出他们的关系假话总数。思路:维护两个元素的关系较复杂,需要一个元素维护3个部分。2.x吃y:是否有为同类,y吃x(y是x的天敌)的关系。1.xy是同类:是否有吃与被吃,天敌与是天敌的关系。y的天敌作为x的同类。y的同类作为x的猎物。y的猎物作为x的天敌。A:该元素与它的同类。B:该元素与它的猎物。C:该元素与它的天敌。添加关系:一对一添加。
2024-02-20 21:04:09
380
原创 P3842 [TJOI2007] 线段
题目大意:有n条线段,求从远点开始到终点的最小代价。限制:不能往上走,必须经过每一条线段。显然对答案有影响的是线段左右端点的选取。表示第i个点取左右端点的最小值。
2023-12-16 16:32:25
486
原创 奶酪状压dp
两点间距离都是确定的,因为当前状态与其他任意状态的情况都能转移,所以。,转移条件是当前点i的这个奶酪为1,而j的状态为0,所以。表示在i个点,状态为j的最小距离。
2023-12-14 12:50:52
393
原创 LIS复习
考虑每个数bi,其出现的位置在pos,那么对于每个数ai,都有一个准确的位置。对于添加,考虑点i表示前i个点的答案贡献,所以要用新的贡献维护前i位的最大值。所以用树状数组查询一个最大值。题意:求最长上升子序列。
2023-12-08 21:24:12
507
原创 P3958 [NOIP2017 提高组] 奶酪
一个显然易见的结论:对于两个圆而言,它们的圆心距离如果大于2倍半径,那么它们相切。2.到了j后,显然后面的奶酪就对答案没有贡献了,所以不用回溯。考虑怎样才能从i->j,
2023-11-27 21:58:14
361
原创 P5018
要求:二叉树对称,且同深度镜像点权值相等,求最大子树大小。3.二叉树少了任意一个儿子,不合法。2.左右镜像权值不相等,不合法。1.是叶子节点,显然合法。4.递归计数合法的点。
2023-11-22 19:46:32
52
原创 noip模拟T1题解
对于每个数x,记f i,j 表示第i个数被质因数j分解的次数。当这个质因数分解次数固定时,将m对当前质数分解,被分解后分解次数+1,优先分解次数较小的数。比如2*3->3*3,->2*4,显然后续贡献较小,则有。,结合特殊性质可以拿到65pts。
2023-11-13 21:37:34
95
原创 P1966 [NOIP2013 提高组] 火柴排队
通过观察样例,易得出当a,b两组数据的大小顺序相等时,有最小距离。于是离散化a,b两序列,可得出将a次序变为b次序的交换数。,那么a中第a[i]大的数对应了b,所以要将c变成单调递增序列,即是求逆序对,树状数组解决,复杂度。令序列c表示第ai大的值在b中对应的数,即有。
2023-11-09 21:59:24
74
原创 2022noipP8865 [NOIP2022] 种花
同上处理后缀和,在每一列上,f是前面c凭借而成,这些c的一横与f[i][j]做乘积即可。处理每一行的后缀和,s[i][j]表示第i行后面j行的连续长度,其中,有。f的贡献是后面行的连续0个数-1+c的个数,保证0个数不为0。,是后面0的连续个数。同时维护一个f[i][j]的前缀和。然后枚举c的两个关键点i,j,k。作为下面的贡献点的贡献,则有。解法二:优化前缀和,复杂度。两点后的贡献,则答案是。
2023-10-30 20:59:30
59
原创 P7076 [CSP-S2020] 动物园
3.如果define,那么在循环内的数不应放在int中,如for(int i=1,x;i++),显然这里的x要unsigned。:给出n个数,这n个数上的pi位如果为1,则其他数可为1或0,但如果这n个数上pi位都不为1,则其他数pi位一定不为1。表示第x位上是否有数,则对于k-1位而言,如果没有数,答案不变,否则答案乘以2,最终贡献为。5.较简单的题在赛场上可重码一遍,一定用清晰的马蜂。4.128局部求解,心态。但是原题卡k=64非常紧,所以不妨设数。:二进制分解数x,记。
2023-10-28 10:35:06
157
1
原创 P9742 「KDOI-06-J」贡献系统
思路:显然,如果放弃一个点,那么后面的点都是可行的,且这一点在第一个正数连续区间,因为负数区间或者其他正数区间都是一定可以取到的,负数区间去到后面,非第一个正数区间取在后面。题目大意:令ai={1,2,3,4,n},求一个排列b,使得贡献值最大,其中,当bi>ai时,获得贡献bi,bi=ai时,获得贡献为0,bi<ai时,获得贡献为-bi。所以最终贡献为第一个正数区间的最大值,第一个负数区间的最大值(在数组末尾),和其他区间的贡献和,即。将这一思路扩展至最后一段的负数区间,同理。
2023-10-20 20:22:17
130
1
原创 P9743 「KDOI-06-J」旅行
一共有k元,存在两种票子,求从(1,1)开始,到(n,m)每个点上两种票子都用完,且将k元都用完的方案数。其中,第一种票子的费用为。,每次使用a票子可以从(i,j) - > (i+1,j),b票子可以从(i,j) - > (i,j+1)但是数组开不到这么大,优化滚动一维数组,即每一个i&1,i+1 - > i&1^1,初始值。表示从点(x,y)开始,还剩l,r个票子,所以以得出两种方程。显然,用于数据较小,可以设。第二种票子的费用是-
2023-10-19 21:08:27
151
原创 C.加法方案
白浅妹妹正在学习加法,但是老师只给了她一个数字 n,她没法对一个数字做加法运算,于是她从 n 中取出若干个数位(至少 1 个),然后按照原来的相对顺序拼接组成新一个数字 x,剩余的数位也按原来的相对顺序组成另一个数字 y,将两个数字 x,,y 求和。a[i]被前i-1位组合了2^i-1次,最后多算了一遍原值2*ans-sum。
2023-10-11 16:55:19
127
1
原创 noip2020T1
注意边处理答案贡献,边简化分数,防止爆128。当入度为0是,将点i放进队列中,注意每一次对于一个点i而言,都要更新一遍贡献。解法:拓扑排序,注意分母分子呈指数级增长,注意使用__int128或高精,对于任意一个点t子节点i而言,有。题意:初始有m个点拥有废水为1,求入度为0的点的废水情况。
2023-09-16 08:27:45
133
1
原创 csp-s2022T1
的复杂度预处理出树上多源最短路,然后对于每一个点,维护一个可到达点点权的最大值,容量为3,避免重复点被选多次,此时的答案为。题意:从一出发,找一个长度为4的环,要求环上节点相邻路程不超过k,求环上点权和的最大值。,实际上常数较小,可以通过本题。
2023-09-07 11:43:43
118
1
原创 noip2022T1
思路:维护一个后缀和数组,表示后j个数的1的总和,若数字为0,则重置。同时枚举字母c的左上角端点,将j+1后非0的数字算和,贡献为。位置为非0,字母f则在下端点的后i+1个位置的1的个数乘以c的方案,贡献为。
2023-09-05 22:00:15
99
1
原创 二分问题题解
思路:既然要求两个最大相减总和,那么对于一个答案x而言,每个i对它的贡献为,所以贪心取前i个最大的数,若贡献不为负数,即答案合法,注意精度1e-3,实际需要取到-0.02。
2023-08-23 20:54:35
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人