首页 > 其他分享 >CSP 模拟 43

CSP 模拟 43

时间:2024-10-10 18:59:59浏览次数:8  
标签:前缀 一个 路径 43 叶子 插入 区间 CSP 模拟

A 欧几里得的噩梦

每一个数最多只有两个 \(1\),模拟线性基的插入过程,发现插入是一条链,没有之后连向 \(0\) 结束,拿并查集维护这条链,对于单个 \(1\),直接插入即可,两个 \(1\) 的检查两个 \(1\) 最后的位置是否一样,如果一样就不能插入,否则大到小连边。

B 清扫

对于一个不为叶子的节点,清除它的一个石头有两种方式,一种是子树内的两个叶子相连,这种路径的数量为 \(x\),一种是子树内的一个叶子和子树外的一个叶子相连,这种路径的数量为 \(y\)。
设 \(s_i\) 表示 \(i\) 子树内所有叶子的价值,有等式:

\[\begin{aligned} &x+y=a_i\\ &2x+y=s_i \end{aligned} \]

根据这个可以解出唯一的 \(x,y\),首先他们必须都为非负正数,其次对于 \(x\),它不能超过最大数量 \(min(\frac{s_i}{2},s_i-maxa_{leaf})\),如果有一个叶子超过总的一半,那么内路径最多只有 \(s_i-maxa_{leaf}\) 条。对于 \(y\) 来说,如果当前节点是根,则 \(y=0\),它没有外路径了。

C 购物

做法一:考虑判定怎样的一个 \(k\) 合法,有数在 \([k,2k]\) 范围内,小于 \(k\) 的数的和超过 \(k\),排完序后每个数能提供一个区间,每个前缀和能提供一个区间,然后就成了区间并的问题,差分后一遍扫描线即可。
做法二:还是先排序,考虑一个数加进来后会将答案怎样扩展,首先他可以提供的最大还是前缀和,最小就是 \(\frac{k}{2}\),观察是否和上一个前缀和有交,这样又成了一个区间并的问题,两种方法的本质是相同的。

D ants

permu 加强版,回滚莫队套可撤销并查集,不会链表。

标签:前缀,一个,路径,43,叶子,插入,区间,CSP,模拟
From: https://www.cnblogs.com/Ishar-zdl/p/18456940

相关文章

  • CSP 模拟 42
    A五彩斑斓枚举上面两个顶点同色,同列的同色,拿桶记一下就行。赛时直接给颜色分了个块,逐个块处理的。B错峰旅行方案数直接乘起来即可,离散化后差分扫描线。C线段树观察到性质:一个查询的区间个数为\(1\)加上分裂次数,当它和一个区间有交但并不包含时,就会分裂一次。设\(f_{i,......
  • 2024.9.30 CSP
    模拟赛赛后看着分哗啦啦的往下掉。T1median找中位数,赛时假做法A了,没想到直接搜。。。code#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+5,mod=998244353;intn;inta[6][N],ans,f[6][4];unordered_map<int,bool>mp;intdfs(intp,intl,int......
  • [赛记] 多校A层冲刺NOIP2024模拟赛04
    这场ACCODERS忘交,结果最后想起来匆匆只交了T1,然后文件名还没改,所以爆零了。。。02表示法100pts高精度,不说了;点击查看代码#include<iostream>#include<cstdio>#include<string>#include<cmath>#include<algorithm>usingnamespacestd;stringp[605];stringan......
  • 2024.9.25 多校 模拟赛
    模拟赛假做法上大分。T1几何bitset优化dp。有空学,先挂个暴力。code#include<bits/stdc++.h>usingnamespacestd;constintN=5e5+5;intT,n,m,t;chars[N],x[55],y[55];unordered_map<int,unordered_map<int,bool>>f[N];unordered_map<int,unordered_map<i......
  • 2024.9.28 模拟赛 CSP6
    模拟赛单\(log\)双\(log\)不如三\(log\)。T1一般图最小匹配简单dp,水。\(O(n^2)\)其实也是可反悔贪心的板子,可以\(O(n\log(n))\)做。考虑排序后求差分数组,就变成不能选相邻的。然后就是可反悔贪心板子。用双向链表(记录前驱后继)维护,然后放进堆里。板dp#include<b......
  • [赛记] csp-s模拟10
    欧几里得的噩梦-pts看见是个线性基的题就没打;其实也不是线性基,只不过模拟了一下它的过程;考虑插入一位数时它能不能被表示,其实就是它异或上线性基中的某些值后可不可以为$0$,那么我们就可以将插入的单独一位数与$0$连边,将两位数互相连边,这样每插入一位数时看看它与$0$......
  • Day3 备战CCF-CSP练习
    Day3题目描述目前在一个很大的平面房间里有\(n\)个无线路由器,每个无线路由器都固定在某个点上。任何两个无线路由器只要距离不超过\(r\)就能互相建立网络连接。除此以外,另有\(m\)个可以摆放无线路由器的位置。你可以在这些位置中选择至多\(k\)个增设新的路由器。你的......
  • UE4.26 Emissive Decal(发光贴花)模拟Light Function
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!主要是想用EmissiveDecal(发光贴花)来模拟出SpotLight的LightFunction效果。原因是SpotLight的LightFunction依赖于阴影,而SpotLight开阴影比较费,且U......
  • [赛记] csp-s模拟8 && csp-s模拟9
    HZOI大作战15pts赛时暴力跳父亲15pts;正解:发现在树上对于向上找大于这个数的操作具有随意划分性,所以考虑倍增,设$f_{i,j}$表示从$i$这个点向上跳$2^j$个比它大的数能跳到哪里,于是我们只需处理出向上跳一个(也就是$f_{i,0}$)的,然后$ST$表预处理即可;具体地,对于......
  • 2024.9.27 模拟赛 CSP5
    模拟赛无T1光题贪心,发现首先让最大的减\(4\),这样最优并且不会涉及向下取整,等到数据范围小了以后直接\(O(n^4)\)暴力枚举。code#include<bits/stdc++.h>usingnamespacestd;inta,b,c,d;intans=1e9;#definemx(x,y)(x>y?(x):(y))#definemi(x,y)(x<y?(x):(y......