随笔分类 - 比赛
摘要:A:用一列放竖着的方块,两列放横着的方块。 B:先询问2k 2k+1,假设已经知道了a>2k,则当a>2k+1时,后者大,否则前者大。这样可以倍增出一个a的取值区间。注意到在区间内x mod a值开始单增,中间突变为0(即x=a),然后又单增,并且最开始的值要比最终的值大。于是拿2k+1和一个二分值
        阅读全文
                
摘要:考虑将每种颜色构成的极小连通块缩点,然后直接跑树形dp即可,即f[i][0/1]表示子树内是否有颜色向上延伸时删边的方案数。dp时需要去除某点的贡献,最好用前后缀积的做法而不是求逆。 至于如何缩点,假装要给每种颜色建虚树,按dfs序排一下序找到所有虚树上的边,标记所有虚树上的点(包括不在虚树中但在虚
        阅读全文
                
摘要:F:考虑对于每个字母对求出删掉哪些字符集会造成字符串不合法,只要考虑相邻出现的该字母对即可,显然这可以在O(np2)(或小常数O(np3))内求出。然后再对每个字符集判断是否能通过一步删除转移而来即可。 G:考虑一个数被删掉对一个区间产生的贡献,只考虑某一侧,显然如果该区间内该数为最大值,贡献即为该
        阅读全文
                
摘要:A:即求长度为偶数的异或和为0的区间个数,对前缀异或和用桶记录即可。 B:显然如果有解,答案一定不大于2,因为原串是回文串,找到第一个不是回文串的前缀和对其对应后缀切掉并交换即可。无解直接判断是否字母都相同或只有最中间字母不同。然后只需要check是否为1,暴力枚举切割点暴力判断即可。 D:显然枚举
        阅读全文
                
摘要:A:签到 B:考虑模意义下每个数的贡献即可。 C:如果上一轮对方选择了某一组英雄中的一个,而另一个还没被选,显然只能选择他。否则显然应该先把每一组英雄中价值较大的选中,这样对方必须选择另一个,最后再将剩余英雄从大到小选取即可。 D:大胆猜想答案等于子树内叶子数量。 E:暴力枚举0串的长度,显然1串的
        阅读全文
                
摘要:A:阅读理解。 B:即维护一个01序列有多少段1,瞎算算即可。 C:任取两人各一段连续+区间,容易发现起始位置之差在模gcd(ta,tb)意义下总是相同的。 D:一个比较坑的题。容易想到随便找一个需要改的字符串,对其最短修改串(即去掉前后缀极长不需修改的部分)进行修改,判一下是否对其它串也合法就做完
        阅读全文
                
摘要:A:签到。 B:直接按欧拉路判,才不管只有四个点。 C:相当于可以用1代价获得1收益,用2代价获得b-a收益。瞎讨论即可。注意2代价获得b-a收益的前提是当前有至少a块饼干。 D:相当于找一个形如0 非零偶数 奇数 非零偶数 0 的序列(每一段长度任意且可以为空),使该序列与原序列差的绝对值之和最小
        阅读全文
                
摘要:A:签到。 B:显然先连接距离较小的点。 C:当a!=2k-1时,令k为满足2k-1>a的最小正整数,显然可以令b=2k-1^a使答案成为2k-1,并且显然不可能更优。a=2k-1时直接暴力打表。 E:https://www.cnblogs.com/Gloid/p/10060025.html 作为一
        阅读全文
                
摘要:D:即有不超过52种物品,求容量为n/2的有序01背包方案数。容易想到设f[i][j]为前i种物品已用容量为j的方案数,有f[i][j]=f[i-1][j-a[i]]*C(n/2-j+a[i],a[i])+f[i-1][j]*C(n/2-s[i-1]+j,a[i])。显然本质不同询问只有O(k2)种
        阅读全文
                
摘要:A:签到。 B:签到。 C:考虑一种菜自己吃和对方吃的收益差,于是显然按ai+bi排序从大到小选即可。 D:显然图仍是一个DAG,其中度数为0的点是原树的根。由于图中没有重边,瞎考虑一下容易发现,对于每一个点,由根到它的最长路上该点的前驱即为其在原树中的父亲。拓扑排序一下即可。开始写了个不知道啥玩意
        阅读全文
                
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define ll long
        阅读全文
                
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> using namespace std; #define ll long
        阅读全文
                
摘要:明明多个几秒就能场上AK了。自闭。 A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace st
        阅读全文
                
摘要:A:显然应该让未确定的大小尽量大。不知道写了啥就wa了一发。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using names
        阅读全文
                
摘要:A:8min才过??? #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define i
        阅读全文
                
摘要:A:对每种商品多源bfs一下每个点到该商品的最近距离,对每个点sort一下取前s个即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorith
        阅读全文
                
摘要:场外选手赛时只口胡出了CD感觉非常惨。只看了E并且还没看到题面里的wiki我能咋办 C:f只与gcd(n,k)有关。 D:考虑每种起始位置,对于跨越的两个排列,只有前一个排列的后缀单减时不产生贡献。答案就非常显然了。注意最后+1,因为这样没考虑n~1的排列。 E:根据题面给出的定理,n+1号点度数增
        阅读全文
                
摘要:A:阅读。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long
        阅读全文
                
摘要:整天自闭。 A:有各种讨论方式。我按横坐标排了下然后讨论了下纵坐标单调和不单调两种情况。写了15min也就算了,谁能告诉我printf和cout输出不一样是咋回事啊?又调了10min啊?upd:突然想起来我好像define int long long了 #include<iostream> #inc
        阅读全文
                
摘要:A:n==2?2:1。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define l
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号