随笔分类 - 题解
题解
    
摘要:首先如果对子和三张牌出现在解中,那么全拆成单张显然没有问题,顺子同理。于是真正有用的牌型就只有单牌、三带一、三带二、四带二了。 暴搜jry手中的牌,然后先搜出双方的大牌型(即三张、四张牌的个数),再枚举三张牌带了几个对子,剩下的三张牌和四张牌带的都是单牌。这些被带的对子和单牌是没有大小限制的,所以对
        阅读全文
                
摘要:A.直接做。 1 #include<vector> 2 #include<cstdio> 3 #include<cstring> 4 #include<iostream> 5 #include<algorithm> 6 #define rep(i,l,r) for (int i=(l); i<=(r
        阅读全文
                
摘要:暴力建图显然就是S->i连1,i->j'连inf(i为第j个力度能弹出的音符),j'->T连T[j]。 由于是“某棵子树中权值在某区间内的所有点”都向某个力度连边,于是线段树优化建图。由于是在树上所以需要可持久化线段树合并。 理论上可能空间会被卡,但是实际上并不能卡掉,边数最大点都不超过100W。 
        阅读全文
                
摘要:1、4、5、6、10都是op=1的点,除4外直接通过模拟退火调参可以全部通过。 1 #include<cmath> 2 #include<ctime> 3 #include<cstdio> 4 #include<cstdlib> 5 #include<algorithm> 6 #define rep
        阅读全文
                
摘要:首先可以想到对每个点统计出所有经过它的链的并所包含的点数,然后可以直接得到答案。根据实现不同有下面几种方法。三个log:假如对每个点都存下经过它的链并S[x],那么每新加一条路径进来的时候,相当于在路径上所有点的S中都加入这条路径。树剖之后,相当于对log个区间中的点都加入log个区间。具体实现有树
        阅读全文
                
摘要:A.3*3讨论即可,注意正方形套圆套三角形只有6个点。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=
        阅读全文
                
摘要:A.先放一个2再放一个1,然后全放2,然后全放1即可。 B.f[i][j][k]表示三个串分别匹配到第i,j,k位的最短合法前缀。当某串新增一个字符时,枚举另外两维更新,转移讨论合法前缀的最后一位是哪个字符串的即可。 1 #include<cstdio> 2 #include<cstring> 3 
        阅读全文
                
摘要:CF风格题,先猜结论,记数列中i这个数共出现了cnt[i]次,那么所有区间[i-cnt[i]+1,i]的并集的补集大小就是答案。 于是我们只需要线段树维护每个位置是否被某个区间覆盖到即可,对于整体加减操作,设一个偏移量即可。
        阅读全文
                
摘要:https://www.cnblogs.com/cjyyb/p/10747543.html 特征方程+斯特林反演化简式子,要注意在模998244353意义下5没有二次剩余,所以每个数都要用$a+b\sqrt{5}$的形式表示,运算类似复数。 斯特林反演的几个用法: 1.下降幂转幂:连续求和时可以通过
        阅读全文
                
摘要:对最终答案取对数,得到$\ln(Ans)=\frac{1}{c}\sum \ln(v_i)$,典型的分数规划问题。二分答案后,对所有咒语串建立AC自动机,然后套路地$f[i][j]$表示走到T的第i个字符,当前在自动机的第j个位置,能得到的最大收益。注意二分的r初始不能设太大,25就可以了,二分终止
        阅读全文
                
摘要:A.最长不会超过a的个数的两倍-1。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++)
        阅读全文
                
摘要:A.奇数配偶数。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef
        阅读全文
                
摘要:A.若存在解则一定存在某个i使得a[i]>a[i+1],翻转它即可。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(
        阅读全文
                
摘要:A.一定是前半段白后半段黑,枚举分界点预处理前后缀和。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<=
        阅读全文
                
摘要:A.直接判。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i++) 6 typedef l
        阅读全文
                
摘要:D1T1:与或和 对每位处理,问题变成所有内部不包含0/1的矩阵的个数,单调栈维护即可。 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #define rep(i,l,r) for (int i=(l); i<=(r);
        阅读全文
                
摘要:A.(c1=0&&c3>0)||(c1!=c4) 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define rep(i,l,r) for (int i=(l); i<=(r)
        阅读全文
                
摘要:A.找到最大值x,再找出最长的连续的x。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define rep(i,l,r) for (int i=(l); i<=(r); i+
        阅读全文
                
摘要:https://www.luogu.org/blog/Sooke/solution-p5280 首先想到对线段树上每个点分别维护有多少棵线段树在它上有标记(f[]),然后想到对于每个操作,根据转移的不同分成5种点。 为了满足第三类点的转移要求,再维护g[],转移类似分类讨论即可。 最后发现前三类点是
        阅读全文
                
摘要:前两种情况显然直接manacher,对于第三种,枚举回文中心,二分回文半径,哈希判断即可。
        阅读全文
                

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