自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 [蓝桥杯 2024 国 A] 最长子段

思路:将给出式子化为 sr - a*b*r > sl-1 - a*c*l ,需要找出满足最长r-l+1,可以维护sl数组最小前缀,sr数组最大后缀,然后二分长度O(n) check。需要注意边界情况,sr[n]的值不应与sr[n+1](也就是0 取最大。

2025-03-14 10:43:55 387

原创 牛客寒假训练营3

思路:先找规律再模拟实现。

2025-02-16 21:04:46 358

原创 牛客寒假集训营2

【代码】牛客寒假集训营2。

2025-02-09 21:31:40 537

原创 牛客寒假集训营1

【代码】牛客寒假集训营1。

2025-02-09 21:24:20 227

原创 24.12.8

对a做一些合乎直觉的处理(-i+1),变为1,1,3,发现只要对于pos找出有多少ai<=pos,即pos前应插入多少个数,二分实现即可。ai的值意义即与前ai个数相加大于0,可以做个差分,然后判断每个数有多少个与其和大于0,若值不等于ai,即无解。例如 a=1,2,5,那么第k天的第一个就是第k-1天的第3个,k-2天的第5个,k-3天的第8个。a=1,2,5,那么前一天的第1,2个数应插在第1个数前,第5个数应插在第3个数前。思路:考虑倒着推,先找出k天之后的第一个数在k-1天排哪。

2024-12-10 15:39:36 306

原创 24.11.24(24ICPC沈阳站游记)

思考后没发现能用什么数据结构,然后看了下样例,发现胜负改变时即区间长度len和d的奇偶性不同,很快写了发后交上去wa了,然后陆陆续续改了点,又wa了两发,封榜时发现了5 2,5 4这样的样例,写了个程序证明只要是长度为5,d为2,4,操作奇偶性一定不会变,于是想到了gcd与len的奇偶不同才会改变胜负,很快改了后就过了,此时已封榜18min。这样 i的路径数即为存在2,3,4的质因子的aj的路径数 dp【j】的总和,再把dp【i】的值加到质因子2,3,4上,但这样会出现重复计算的问题。

2024-11-26 17:10:46 980

原创 24.11.17

若*,首先注意到最多 lg1e4+1(下文为方便记为lg1e4)个大于1的ai乘起来就会超过1e4,是一个很小的数,所以可以维护前lg1e4个大于1的ai并记录他们的dp数组状态,这里使用deque实现,deque还可以用下标访问,挺方便的。将工具龙k从大到小考虑,将元素需求存入优先队列,每次先考虑最大需求ned,若ned>=2^k,那么直接让k去收集ned,若ned<2^k,也让k去收集ned,因为处理ned一定不劣于处理更小的需求。补22 CCPC威海 D。补22 CCPC 威海 K。

2024-11-18 19:34:12 889

原创 24.11.10

考虑先把图拆成森林,让每个连通块的点数小于等于2,最多m次操作,若无边则直接结束,若有边考虑再构造成一颗树,事实上对于此操作和森林的情况下,构造成树很轻松,对于边 u,v,若要合并单点 w,直接进行操作u v w,操作边变为 u w,若合并边 p q,进行操作 v p q,p q即成为了v的子节点,此步骤操作次数也小于n。思路:有意思的构造,通过1 2 1的操作逐步构成其他操作,若对 x+2,x+4...x-1执行1 2 1操作,即等价与对 x和x+1进行 -1操作。补 cf round985 D 构造。

2024-11-11 22:25:52 1171

原创 24.11.3

思路:这题利用到了gcd的一个很重要的性质,前缀gcd只有logV种,所以每当前缀gcd即pre【i】变化时,可枚举一遍操作的区间,l固定为 i,枚举 r,先预处理出后缀gcd,即可得到操作区间为 i-j的全局gcd,ans取max。若n为偶数,可以补齐n的所有二进制0位,定m为n的二进制相反数,m一定是奇数,按上述构造方法构造出m,最后填n,n|m即可在二进制位上全1,注意m为1或3需要特判。补24牛客多校10 D。补24牛客多校10 L。补24牛客多校10 K。补24 icpc昆明邀请赛 E。

2024-11-04 14:47:39 1075

原创 24.10.27(DSU on tree)

先考虑假如bi一定拿糖,那么 i拿糖则需要 i事件在 bi事件后发生,对于全排列,有一半排列满足此情况,那么 Pi为1/2。对于 u的所有儿子,每遍历一个儿子就需清空cnt,以免影响其兄弟,当遍历完其所有儿子,再遍历 u,但是当遍历最后一个儿子时,其实无需清空它了,可以直接给u用,那么贪心的想,就把重儿子当作最后一个儿子吧。设i-1行的区间为 l1,r1,i行的 l,r应该怎么选呢,稍微画下发现至少需要满足 l<l1<r 和 l<r1<r 的其中一个,由此发现限制只需要考虑到区间的单个端点。

2024-10-28 13:46:56 1054

原创 24.10.20(换根哈希)

然后tot点数需要加一,注意tot加一后dp【i】的含义也会随之改变,例如tot为6时,dp3表示3智3武,tot加到7后,dp3表示的即3智4武了,3智4武当然可由3智3武转化而来,但同样也可从2智4武变来即dp2,即得dp【i】= max(dp【i-1】,dp【i】),然后这里应该倒着遍历。用f【i】记录测试,若输入 r>0,则对于所有 i>=r,f【i】++,r<0,对于i∈[0,tot+r],f【i】++,可以使用差分处理,当r==0时再求前缀和还原,还原后即可把f【j】加到dp【j】上。

2024-10-21 11:58:02 921

原创 24.10.13(Splay树)

思路:观察了一会发现个东西,设俩点x差值为a,y差值为b,先将a,b除掉它俩gcd,设x1<x2,y1>y2,线段与x1+1这条线的交点即为(x1+1,y1-b/a),x1+2...到x2以此类推,酱紫就能找到第三点即和交点上下距离最近一个点,然后猜了个结论,最近距离必为1/a。由此可得到狮子,(k*b%a)/a=1/a,化简后得 k*b-m*a==1,用扩欧求 k就好了,然后很恶心地分类讨论了一下俩点x,y的相对大小,还有注意扩欧后的k值也有可能是 k*b-m*a==a-1,也要判断。

2024-10-14 12:16:18 631

原创 24.10.7(线段树合并,分裂,扫描线,字符串哈希)

先将 i和 i+n连边,然后遍历 i和 c-i+1列,若sum1>2,则无解(注意若奇数列特判中间那列), 遍历列和其镜像列,若1的个数<2,则每行翻不翻无所谓。最开始是边处理差分边跑状压,只跑出现过的有限的状态,但这样有时会达不到答案,也想过先把边提出来再跑一个状压,但由于不清楚不同状态的边的数量,感觉会T,没敢跑(现在想来,赛时那么多wa2,就应该换个写法莽一发),赛后发现实际上不同状态的边的数量是 k级别的,这样就可以很轻松跑个状压,但是对于为何这么少还没想明白,说是虚树,现在不是很想看。

2024-10-08 10:55:45 715

原创 24.9.29

这里用到了神奇的sort,首先将a从小到大排,将b从大到小排,为什么这么做呢,将每个数看作二进制,排序时一定先按优先级最高的第一位来排,也就是如果a中最高位的0/1数量刚好能和b中最高位的1/0数量对应,那么一定存在 idx,使得任意i<=idx,ai此位为0,bi此位为1,任意i>=idx,ai此位为1,bi此位为0。补 cf round 973 div2 D。1-改为1,2-改为2,3-改为任意奇数,4-改为任意偶数,5-不变,6-改为质数-1,7-改为质数-2。补24 ICPC武汉邀请赛 M。

2024-09-30 13:15:15 934 1

原创 24.9.22(中秋佳节)

这里简要说下最关键的优化时间的一步,以 n=8,k=1为例,k=2时,dp【8】从2,4,6转移, dp【7】从1,3,5转移,那么dp【6】呢,从2,4转移,可以发现6和8的区别即比8少了一个6, 5也是比7少了个5,实际上每k个数可看作一周期,我们只需要把第一个周期的答案算出来,后面的答案都可以根据上一个周期直接得到( 和单调队列优化多重背包有一点像。然后将价格排序,遍历一遍就得到了 n个答案。百度之星决赛因为第四题状压dp,结果我掉进了暴力dfs+优化的坑里,痛失铜牌,今日幸而识出,ac破除心魔。

2024-09-23 12:30:43 669

原创 24.9.8(字符串双哈希)

举个栗子,一长为2的链,根节点为a,叶子为b,此时b的深度即dep【b】为2,fa【b】是a,如果输入an,a,将a作为an的儿子,那么fa【a】=an,a的深度变为dep【a】=1,在压缩时,如果写的+1,那么dep【b】=dep【a】+1 =2,就会出错,,所以对深度的处理应为+=dep【fa【x】】思路: 注意读题,题面给了几个关键信息,一是给边形式为a,b且a是b的父亲,代表着不用双边建树,二更为关键,询问的c不会是之前的b,代表着c必定是一棵树的根,因为没当过儿子。补 24牛客多校 四 I。

2024-09-09 10:45:17 1021

原创 24.9.1(康托展开)

思路:由平方数考虑到质因子分解,值域1000以内,若存在大于31的质因子,则必定只有一个,且31以内的质数也只有11个,可以状压处理,将所有数分解,若不存在大质数则分解后为1,若存在即为大质数,按此分组,对每组进行转移。最少要往回趟 s次,每次载 l个人,在贪心即每次运输体力最高的人的前提下,所有人 a的总和最少需要 s*l,若一个人的 a大于 s,那么超出的部分没有意义,所以计算总和时 a需要和 s取min,再和 s*l进行比较。补 24牛客多校 二 C。补 24牛客多校 二 I。

2024-09-02 17:32:59 994

原创 24.8.18(线段树维护字符串哈希,警钟长鸣,百度之星打铁)

注意到最后一个数是可以最先得知的,即 a【i】+1,这题样例很好造,多造俩样例再观察下规律,就发现可以给已经填过的数加上1的权值,p【i】 不能一下得到答案,需要枚举check,若枚举到 j,查询在 p【i】后填过多少比 j小的数 (树状数组,a【i】代表在 p【i】前有多少小于等于 j的数 (经过++处理,若加起来后等于 j即满足,那么此数一定就是 j,复杂度感觉有点极限。二分时,如果枚举 i顺着放,冲突关系没有经过排序处理,会导致前面放的很随意,以至于后面遇到无法避免的大冲突,但其实是可以避免的。

2024-08-19 01:59:22 1264

原创 24.8.11( O(n)预处理组合数(阶乘,逆元))

现在盒子数变为了 m+1个,前 m个要求每个的球数>=a【i】,最后一个可为空,我们可以把对球的数量的要求全部转换为基本情况,也就是至少一个,对于 >=a【i】的,将要求和总球数都减去 a【i】-1,对于可空盒子,将要求和球数都加上1,那么就成了最基本的隔板法的情况。注意到我们如果在每个坐标都枚举所有状态,而有些马的位置,此时枚举的 ( i, j )还不可能碰上,那么枚举此马存活与否的状态是无意义的,例如对于起点有效的状态只有全1,那么可以预处理出每个坐标的有效状态,就能在转移中大幅降低复杂度。

2024-08-12 01:43:46 1030

原创 24.8.4(主席树,递推求组合数,警钟长鸣)

思路:区间修改+单点查询,考虑怎么设置懒标记,对于一个点 i,若知道了1操作的 l,k,d, 就能算出加值,为 k + ( i - l )* d,分解一下变为 k + i*d - l*d,那么懒标记可以用 k,d,ld这三个值来实现,不过实际上有点冗余,因为 k和ld都是和sum直接加减的关系,可以合并为一个tag。给 l,r区间加上等差数列,可对 l加上k,对 l+1至r加上d,对 r+1减去 k+(len-1)*d,那么这就是一个差分数组,求 p即为 ap+ 差分sum(1-p)

2024-08-05 01:17:50 1261

原创 24.7.28(tarjan 割点,割边,多重背包单调队列优化)

实际两边不需要全填-1,首先明确x和y的位置必填1,且y-1和x+1必填-1,此后-1和1交替填就行,若头尾是1,会出现错误吗,事实上是不会的,因为x严格大于y,故x至y的和即前后缀最大值>=2若头尾是-1,前后缀最大值>=1。思路:开始容易想到 y前和 x后全-1,y到x填1的构造,但对于 5 2 1,1 1 -1 -1 -1有问题,1和5的后缀值都为 -1,y判定为5。补 ABC344 F。补 ABC272 E。补 ABC225 F。补 ABC199 E。贴 ABC322 F。补 ABC156 D。

2024-07-28 20:33:33 852

原创 24.7.21(Tarjan SCC缩点,警钟长鸣)

mp【sum【i】】,dp【i】= dp【i-1】* 2 + 1 表示前 i-1的子序列数以及末尾加上sum【i】若 mp【sum【i】】= lst,dp【i】= dp【i-1】* 2 - dp【lst-1】,因为在 dp【lst-1】的序列末尾加上 sum【i】得到的序列数已经被计算过了。处理出二维前缀和,如果dp【i-1】【j-1】是一个箭头尾,那么i,j接在后面的条件是三个点为1,其余点为0,满足则dp【i】【j】= dp【i-1】【j-1】+1。补 ABC 146 E。补 ABC 211 E。

2024-07-21 21:19:34 1133

原创 24.7.14(板刷数据结构,警钟长鸣)

对于一个区间内的相同数字,只关心最右边那个,vi记录数字的最后一次出现位置,例如 1 4 5 1,考虑前三个时,vi【1】=1,vi【4】=2,vi【5】=3,树状数组形为 1 1 1 0,然后下一个查询的 r为4,a【4】已被记录,那么就更新 vi【1】为4,树状数组形为 0 1 1 1。因为是双哈希,所以东西较多,ha11,第一个1表示正着hash或反着hash,第二个1表示第一套base和mod或第二套,num01,第一个0表示0或1开头,第二个1表示第一套或第二套base,mod。

2024-07-14 19:58:34 874

原创 24.6.30

思路:题意有点复杂,看似伤害和ABCD的值都相关,要考虑四个,实际上经过处理后只需考虑两个值,即A*B和C-d(C为原题意的100+C,这样就能线性即3e3地处理询问,但复杂度仍是9e8,对于1s来说是不够的。思路:注意到n和m在10以内,p不大,对(p-1)的模数也在1e4以内,可以直接暴力bfs,vi数组标记出现过的状态(即坐标和对(p-1)的模数,出现符合条件状态就结束,bfs完毕就输出-1。题意:给一数组,可以任意排序,有一操作为使其一元素+=k,问最少操作次数使其对称,不可能则输出 -1。

2024-07-06 16:43:33 679

原创 24.6.16

思路:有效操作2只有一次,且反转后不会再出现负数,即后面能贡献 2^n-i个方案,再乘上前面 2^(k>=0的次数)对于所有操作,做个前缀差分和后缀差分,cnt 记录当前有多少个在扩散的点,w记录点的权值。思路:主要在于如何处理扩散,向两边都扩散,那么可以正着跑一遍处理向右扩散,反着处理向左。思路:dp【i】【0/1】表示考虑到第 i个,第 i个选 1或b【i】的最大值。思路:dp【i】【j】表示第 i个阶段,状态值为 j的方案数。,用前缀和优化一下就行,注意不要漏掉 i-1的方案数。

2024-06-24 13:29:09 527 2

原创 24.6.9( 概率dp)

按位枚举,m此位为0跳过,例如n为110 0 10,枚举到第2位(从0开始,考虑多少种情况此位为1,此时n此位为0,左边的数为110,右边为10,先考虑左边的取值,若小于110,则后面任意取值,有 2^2 种情况(指数为右边数长度,若等于110,则若中间位为1,有10种情况,若为0,则无贡献。第二种情况,停留一天,dp【x】即为 dp【x】+1,需要注意的是,这里的转移和魔镜长得很像,但实际意义并不相同,因为魔镜的dp【i】定义为从头开始到 i,而逃离的dp【i】定义为从 i开始。补20届东南校赛 J。

2024-06-10 16:26:03 1239

原创 24.6.2(动态开点线段树)

注意二分配线段树 O(log^2 * q)的复杂度会T,但结果一直显示的re,所以一直以为是空间没开够,但N*207已经是极限了(实测,一度怀疑动态开点线段树的空间复杂度到底怎么算(现在也还没明白),后来试了下线段树上二分,就过了。有几个需要注意下的点,第一是传送门设置的传送位置不同方案也不同,所以放置传送门时转移需乘上 ( i-1),第二是内存限制很小,第一维需要滚动,第三是多组样例,记得输出换行符。19届东南校赛 B。23百度之星 切蛋糕。百度之星20年 chess。23年百度之星 第五维度。

2024-06-03 12:11:58 1569

原创 24.5.26(树链剖分板子,二分+线段树)

思路:可看出峰值的数量是固定的,为 n/2-1,头尾不可为峰,连续俩数不能都为峰,假如我们让奇数位置的值为峰( 除了头,发现如果p的 n值在偶数位,且挨着1,是无法实现的,但其实也不难解决,将p翻转后 n下标的奇偶性就会改变( 最后输出前记得翻转 q。如果只有偶数子节点,那么0/1的选择是固定的,如果存在奇节点,所有偶节点可以取更大值,对于奇节点的选择,如果偶数个奇节点,0/1各一半,如果奇数个,多的那个取父节点的反,将奇点的 0/1 差值排个序,贪心即可。easy线段树题 建平台。补重庆科技 C 二分。

2024-05-27 12:50:11 1134

原创 24.5.19(换根dp)

先以 1为根dfs一遍求出dp【1】,然后第二遍dfs进行答案的转移,假设 d到点 x,其父节点为 f且dp【f】已知,则dp【x】=dp【f】- sz【x】+ n - sz【x】,因为根从 f转移到 x,x为根的子树距离都会减 1,除此之外的节点到根距离都会+1。若ma【i】> 0,dp【f】包含 i为根子树,dp【f】- ma【i】若为正,dp【i】加上它,否则不加,实际等价于dp【i】为 ma【i】还是 dp【f】补19陕西 C 0689。补河南邀请赛 L dp。

2024-05-20 10:05:47 790

原创 24.5.12(23广东,19陕西)(字典树)

若k==3, 则存在两点 s,t 分为[ l,s ], [ s+1,t ], [ t+1,r ]三个区间 ,即 b[l-1]^b[s]==b[s]^b[t]==b[t]^b[r] ,即b[s]==b[r]且b[t]==b[l-1] (s<t), 则可找出下标[ l,r ]内最接近 l的值为 b[r]的数的下标,和最接近 r的值为b[l-1]的数的下标, 可以预先把一个数出现的所有下标存进 vector里实现二分查找,最后判断 (s<t)补cf round943 div3 E。补ATC abc352 D。

2024-05-13 10:45:07 987

原创 24.5.5(离散化+树状数组,线段树)

不过由于值的范围能到达1e14,需要离散化处理,即按照原值的大小关系映射为紧密连续的值,这里需要用到的值不仅有 a【i】,还有 a【i】- k 用于查询,所以离散化后数据范围最多 2e5。思路:三个连续数的和为偶数,组合形式有限,分别为偶偶偶,偶奇奇,奇偶奇,奇奇偶,数组最先三个数的奇偶性确定后,整个数组的每个数的奇偶性都确定了。cf edu 165 补C。权值树状数组,单点修改,区间查询,修改的意义是值为x的数多了1,查询的意义即为<= x的值个数,类似于用树状数组维护桶数组。补牛客寒假营2 G。

2024-05-06 12:40:15 1075

原创 24.4.28(板刷dp,拓扑判环,区间dp+容斥算回文串总数)

i 三连的个数选择,受到 i-1 三连和 i-2 三连的个数的影响,那么为什么不把 i-2 三连的个数也设在状态里呢,因为在转移时 dp【i-1】【k】【t】的 t 就是 i-2 三连的个数 (有点像状压,然后枚举 j,k,t 转移即可,答案为 dp【m】【0】【0】,因为没有 m+1 的麻将。不能组成 k,比较自然的想到先删去 k 的二进制表达最高位,记为 h位,没了 2^h后,再看看除 k之外的数如何组成,结论是需要额外添加三个数,k-2^h,k+1,k+1+2^h。

2024-04-29 00:20:56 1596

原创 24.4.21(链表模拟,板刷dp)(天梯赛)

区间dp用dfs递归实现,因为s的括号必两两对应,所以dfs的 l 和 r 从1,n开始,l 必定是(,r必定是),l,r的对应分三种情况,一是 r==l + 1,直接赋值即可 , 二是 l 和 r 对应,但不相邻,枚举 l+1 和 r-1 的涂色方案,把合法状态加上即可, 三是不对应,则需要把 l 和 ma【l】,ma【l】+1和 r 两个对应的区间的方案算出,两区间方案数相乘。正解是bfs,map存的是单个物品价值,vi存的是bfs到达的点,每次跑一遍p,能去但没去的点就继续存入队列。

2024-04-22 10:29:25 882

原创 24.4.14周报

如果这么做的话,复杂度依然是O(n^2),但还有一个关键点,a【i】遍历到了a【r】前,那么其实从a【i】到a【r-1】,答案都是一样的,即r-2,那么下一次 i 就可以跳到 r,复杂度即O(n)对于a【i】,它前面的数肯定是可以拿下的,所以直接取前缀和sum【i】,然后往后遍历,当遍历到a【r】大于等于sum【r-1】时结束,那么对a【i】来说,他的答案就是r-2(r-1个数减去自己)如果此状态还没有掉下峡谷,即可转移,dp【i】【j】= dp【i-1】【j】+ dp【i-1】【j+1】

2024-04-15 09:16:35 965

原创 24.4.7周报(kmp+状压)

这里还有一个注意的点,在统计前缀和第 i 位0 1数量时,我使 a【j】 & 1 s【j】,dp【i】【j】=1,否则若s【i】== s【j】,dp【i】【j】=dp【i+1】【j-1】

2024-04-08 08:11:14 937

原创 24.3.31周报(板刷dp,状压dp板子,二分kk)

思路:因为总重量过大,不能跑常规的01背包,所以这里记dp【i】为装入 i 价值物品所需最小重量,状态转移为dp【i】=min(dp【i-v】+w,dp【i】),然后再跑遍dp数组确保其单调不减性,就可以对每次询问进行二分查询了。转移:dp【i】【j】=dp【i-1】【j】,如果a【i】%j==0,dp【i】【j】+=dp【i-1】【j-1】在dp【i】【a】非0的情况下,dp【i】【c】=max(dp【i】【a】+ 3 ,dp【i】【c】)线性dp第一题:拼字符串。

2024-03-31 18:34:19 966

原创 24.3.24周报(第一类,第二类斯特林数)

思路:首先不存在无解的情况,然后我们想什么地方是可以立马确定的,即是n个1的行和列,当我们把那一行一列填满后,要求一个1的行列就满足了,不能再填1,于是可选的行和列变成了n-2个,此时又可以确定n-1的行和列,如此往下,直到填好 n/2(向上取整)个行列,即结束。思路:高度为n的建筑在中间,左边有a-1个建筑群,右边b-1个,一个建筑群即为其中最高的建筑在外面,其余建筑任意排列,可以想到这排列方式即为第一类斯特林的圆排列,每个建筑群的顺序即为从外到内由低到高,是确定的,遂计算时不需要考虑。

2024-03-24 21:16:28 1012

原创 24.3.17周报(倍增/tarjan LCA,数位dp,ST表(RMO) )

思路:学到了个新东西,建立虚点,代替原来的边,将图进行转化,每种颜色建一个虚点,连接此颜色边所连的点,虚点到点的单向边边权为0,点到虚点单向边边权为1,这样同颜色边所连接的点就能以 1 的代价移动,对应题意。思路:每个点往上dfs,d到标记过的点就结束,因为默认返回,所以return 路径*2,记录从外卖站开始的一条最长的路径不返回,所以输出要减一个最长路径,感觉这题要点手法的。题意:无向图,无自环,无重边,两点间的边以一种颜色标注,给定起始点和终点,输出路径最少经过的颜色数。

2024-03-18 01:59:39 904

原创 24.3.10周报( 线性筛,区间dp, 重载运算符,二维全局vector)

星期一:cf round930 div2 C题交互:cf传送门思路:先找最大值,再找和最大值异或最大的值,异或值最大,二进制中即为0对应1,按位或的结果即为1,所以也应是最大,按位或结果相同时取更小值代码如下:ll n;int m,ma,mi;int ask(int a,int b,int c,int d){ cout << "? " << a << " " << b << " " << c << "

2024-03-10 21:06:54 1055

原创 24.3.3周报(状压dp)

思路:一个长度为k的框,正方形顶点全在框上的情况有k种, 长度为n的大框,包含长为i的小框有 (n-i+1)^2个。晚上cf睡过头了, 醒来34分, 脑袋迷糊没敢入场,a,b写了后发现C是道交互, 还好。思路:计算u到v的路径数,以及路径上每个点的遍历次数,遍历次数等于路径总数即为关键点。cf round931 div2的C又是交互,做不来,还好前俩题手速够快。打了cf round929 div3, a-e题都很简单,手速还行。思路:先问三个边角,得到三条线的范围,两个交点中必含一矿。

2024-03-03 22:41:02 425

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除