- 2024-11-13UOJ NOI Round #7 Day1 比特迷宫 个人记录
思路构造,且上界并不是特别严格。/bx/bx/bx首先加法比较“混合”,考虑转成位运算,具体地,钦定操作的\(a,b\)满足\(a\&b=0\)。考虑递归成子问题,按照popcount分组,有一个关键观察是:我们在操作一个\(a|b=c\)的时候,可以将任意几个\(d\&c=d\)且\(popcount(d)=popcount
- 2024-11-12gym103102H AND = OR 题解
非常巧妙的一个题。我们首先考虑单组询问该怎么做。首先需要注意到一个结论,即设答案为\(x\),那么对于\(\forally<x\),\(y\)都应该放在与组;同样的,对于\(\forally>x\),\(y\)都应该放在与组。进一步的,我们观察在\(\text{popcount}\)上也有同样的性质,即对于\(\forally,
- 2024-11-11拓扑AC NOIP模拟赛2
100+35+10+10拿下rk7,拓扑AC的A题也太过困难了吧……T1题意给定数组\(a\),数组长度为\(n\)。定义\(f(x)\)表示有多少对\((i,j)\)满足\((a_i+x)\)是\((a_j+x)\)的子集。给定\(k\),保证\(a_i<2^k\),求\(\sum_{i=0}^{2^{k-1}}f(i)\)。\(n\leq20000,k\leq60\)。赛
- 2024-11-01Codeforces Round 982 (Div. 2)解题报告
CodeforcesRound982(Div.2)解题报告A显然答案不会小于\(2(\maxw+\maxh)\)。构造方案学习样例一,挺明显的。B有个小性质(好像没用):一旦能通过操作变成non-increasing,再对整个序列操作一次必然变为同一个数字。我们把一开始remove的数字记为A类,通过操作删掉的记为B类
- 2024-10-18P8969 幻梦 | Dream with Dynamic
Sol好题!注意到popcount操作会使数以\(\log\)的速度变小,所以没有加操作的话我们就可以直接暴力维护。但是注意到有加操作,考虑懒标记,先popcount后加。当一个区间popcount之后,值域范围极小,所以考虑暴力对每一种数预处理popcount。这里其实可以用线段树但是我懒了,用了分
- 2024-08-27[ABC367G] Sum of (XOR^K or 0)
MyBlogs[ABC367G]Sumof(XOR^Kor0)考虑求出\(ans_i\)表示选了\(m\)的倍数个数,异或和是\(i\)的方案数再统计答案。先考虑\(m=1\)怎么做。相当于是\(ans_i=[x^i]\prod_j(x^0+x^{a_j})\),这里的乘法是异或卷积。如果直接xor-FWT复杂度不如暴力。令\(F_i(x)\)表
- 2024-08-26题解:P9256 [PA 2022] Muzyka pop 2
题解:P9256[PA2022]Muzykapop2题目传送门题目重点从前往后比较,和数字比较一样,如:12345<12445。如果一个串是另一个串的前缀,那么不是前缀串的那个字典序小。题目思路我爱贪心贪心就行了,每次让x增加1,找出1的个数来实现。要求序列是字典序最小的,因此每次选择尽可
- 2024-07-21清华训练营预选赛 赛后总结
汉明码的精髓在于,既然你无法分辨更改检验位的情况,就把检验位放到冲突的位置,消掉那一位位运算的性质:a+b=(a|b+a&b)\(a\oplusb\oplus0\)+\(a\oplusb\oplus(111…11)\)=111…11其实D题才是最简单的题目,比赛的整体难度低于省赛,明年还参加的话开场或许可以考虑和队友分工增进
- 2024-07-17Masked Popcount 题解
背景罚了一发,太菜了。为什么我终于有时间的时候她要考试?题意给你\(n,m\),问\(\sum_{i=0}^{n}popcount(i\&m)\)。其中\(\&\)代表位运算,\(popcount\)代表一个数字二进制下\(1\)的个数。分析两个数字在二进制下根据数据范围有\(60\)位。所以我们考虑每一位对答案的贡
- 2024-06-09D - Masked Popcount
D-MaskedPopcounthttps://atcoder.jp/contests/abc356/tasks/abc356_d 思路对于m的所有为1的bit位置,统计0~n中所有对应对bit位置中1的个数,如何统计呢?观察如下bit位表:从右向左第一位循环节为 01从右向左第一位循环节为 0011从右向左第一位循环节为 0
- 2024-06-05abc_356 Masked Popcount
#include<bitsstdc++.h>#definelllonglong#defineN100005#definemod998244353usingnamespacestd;llsum_b[N],sum_p[N],p[N],a[N],sum;voidf(lly){llx=y,t=1,s=1;while(x){if(x%2==1)a[t]=1;x/=2;
- 2024-04-01ABC347 C~D~?(更新中)
Portal:https://atcoder.jp/contests/abc347/tasksABC347只过了\(A,B\),再创新低,。。。遂来补题C-IdealHolidays题意简述输入\(n,a,b,d_1,d_2,…,d_n\),表示在Atcoder国每周分为\(a\)天休息日和\(b\)天工作日,现在有\(n\)个事件,第\(i\)个事件落在第\(d_i\)日。我忘了今天是这
- 2024-03-02CF vp合集
CF1936/1937B考虑计数只需要找到最后一个拐点和第一个拐点。C可以先花\(n\)次找到最大数,然后找一些位置\(j\)使得\((p_i=n-1)|p_j\)最大,最后找到最小的\(p_j\)。考虑为啥是对的,因为得让异或最大,而且是排列,所以其中一个取最大不劣。然后找另一个能尽量填补0的位置的数。
- 2024-02-032024 日寄
2/3经典不会D,开摆abc怎么G放树套树的板子啊,还是超级削弱版split+merge>>rotate+splay2/2__builtin_popcountll也能longlong__builtin_popcount只能处理int,longlong要__popcount,但要c++202/1我的水平:蓝色的ds绿色的dp红色的贪心(小粉兔半夜直播打原神(
- 2023-12-24闲话12.24
在学校的第一天。上午下午卷了昨天讲的《数论》,感觉收获很多啊,抽象的计数题也见了一大堆
- 2023-11-12ABC328G 题解
blog。剩下几分钟的时候胡出来了,但是时间不够,痛失AK/dk。\(N\le22\),显然状压DP。\(dp_s\)表示确定\(s\)集合的元素所需的代价(这些元素都放在最前面)。确定了\(s\)后,发现会有\(\operatorname{popcount}(s)\)个元素堆在前面,那么枚举\([L,R]\)接在后面,也就是\([\opera
- 2023-11-012023-10-26 模拟赛
C很久没见到过这么清晰的讲题人了。我们先来考虑一些边界情况。全是\(0\)时这个时候其实就是划分成至少\(k\)段的方案数,组合数计算即可。答案大概为\[\sum_{i=k-1}^{n}\binom{n-1}{i}\]存在前导零长度大于等于\(k-1\)时例如001111想分成至少\(3\)段,发现
- 2023-10-252023.10 做题纪要 #3
目录2023.10.23P9755[CSP-S2023]种树ABC304ExConstrainedTopologicalSort2023.10.24AGC019EShuffleandSwapAGC017FZigzagCF1827EBusRoutes2023.10.25P8426[JOIOpen2022]放学路(SchoolRoad)P6790[SNOI2020]生成树P9333[JOISC2023Day2]Council2023.10.23CSP
- 2023-10-02Gym 103428B Subset
CF传送门首先考虑没有选出的数互不相同的限制。设\(f_m\)为选出\(m\)个\(\in[0,n]\)的数,异或\(\text{popcount}=k\)的方案数。可以考虑枚举这\(m\)个数和\(n\)的\(\text{LCP}\)(要求后一位为\(1\)),然后钦定一位为\(1\)来满足\(\text{popcount}\)的限制。那
- 2023-09-24#20230924
20230924NOIP#14总结时间安排8:10~8:35看题,\(B,D\)看完没一点想法先放放。8:35~9:20写\(A\)的前两档和\(C\)的第一档。9:20~9:40瞪出来了\(A\)的正解写了。(但是因为没判\(-1\)导致\(100\Rightarrow30\)9:40~10:00写\(B\)的第一档。10:00~11:55觉得\(B,
- 2023-07-17P9451 [ZSHOI-R1] 新概念报数 题解
目录DescriptionSolutionCodeDescription在此题中,对于一个数\(x\),若\(\texttt{popcount}(x)\geq3\)(即\(x\)在二进制下\(\texttt{1}\)的个数大于等于三时),那它是非法的,否则其为合法的。给定\(T\)个数,如果当前的数\(x\)是非法的,则输出No,Commander,否则输出第一个大于
- 2023-04-07【题解】CF472G Design Tutorial: Increase the Constraints
《正解分块+FFT跑1min,__builtin_popcount暴力跑10s》《没人写正解,CF也不卡》思路正解:分块+FFT乱搞:__builtin_popcount首先我们知道哈明距离可以用一种\(O(|字符集||S|)\)的算法求。具体考虑枚举字符集中的每一个字符,将两个串中是该字符的位置看作\(1\),不是该字
- 2023-03-20【题解】CF1034E
题目描述给定\(n\)和长度为\(2^n\)的数列\(a_{0},a_{1}...a_{2^n-1}\)和\(b_{0},b_1...b_{2^n-1}\),保证每个元素的值属于\([0,3]\)生成序列\(c\),对于\(
- 2023-03-11快速求popcount的和
前置知识\(popcount(n)\)表示将\(n\)转为二进制后的数中\(1\)的个数。结论\[\sum_{i=1}^{n}\text{popcount}(i)=\sum_{i=1}^{\left\lceil\log_{2}{n}\right
- 2023-01-10【CF1119H】Triple
【CF1119H】TripleDescription给出\(n\)个三元组\(a_i,b_i,c_i\),范围为\([0,2^m-1]\)再给出参数\(x,y,z\),每个三元组有\(x\)个\(a_i\),\(y\)个\(b_i\),\(z\)个\(c_i\)对