摘要:
其实去年暑假就讲过一次但是当时我没听懂糊弄过去的。 我是个傻逼。 首先是裸题 Hero meet devil。 这种从 DFS 一步步推到 DP 感觉非常好理解。 就是说我们不必追求 DP 的形式,仅仅是把一个 DP 看成一种转移过程即可。 游园会 多了一个不能走到的限制,那么多设置一维表示目前匹配 阅读全文
摘要:
题解 P5664 这道题非常水,段誉初二就切了,但是我初中 DP 学的非常差,基本什么都不会,见到的小套路能会一个算一个吧。 直接计算比较困难,尝试使用 DP 求出不合法的方案数即可。 令 sum[i]=\(\sum_{j=1}^na[i][j]\)。 不难发现总方案数很好求,为 \(\Pi_{i= 阅读全文
摘要:
updated on 2023.3.5 10.29 今天考 csps,实际上考前心态比较放松,没什么信心和高二同学 pk。可能这种摆烂的心态也影响了考试。 这场考试,在人均200+的情况下,我最高100,因为我用了接近三个小时做 T1并且没有调出来。 考试结束后我都一直认为 T3是数据结构,因为我几 阅读全文
摘要:
沙拉公主的困惑 不难发现与 m! 互质的数在 [m+1,n!] 中产生,这些数实则可以表示为 p*m!+q($0\leq q\leq m-1$)。 q 与 m 互质,那么答案就是 $\frac{n!}{m!}\phi(m!)$ 了。 对于前一部分,因为阶乘在中途可能会变为0,所以直接用 zkw 线段 阅读全文
摘要:
主要可以用来代替树状数组。 ~~所以大部分时候我还是用普通线段数咧~~ 其核心思想就是用两个"收缩"节点自底而上修改或查询。 并且区修区查时用 pushdown 会导致常数变劣,这时就使用标记永久化。 以下是区修区查。 Code(附注释): #include<cstdio> #include<ios 阅读全文
摘要:
~~学个锤子就是复习~~ Network 当新增一条边时,两个点之间的割边全都变为非割边。 于是大力树剖( 更简单的写法是缩点。 Code: #include<cstdio> #include<cstring> #include<iostream> using namespace std; cons 阅读全文
摘要:
Ehab and the Expected GCD Problem 比较容易发现第一个元素所拥有的质因子个数最多,且往后的元素依次最多剔除1个质因子时最优。 最小的质因子就是2和3了,如果等于5,那么可以变成成 $2^2$ 更优,其他同理。 并且3的数量最多为1。 设第一个元素为 m=$2^x3^y 阅读全文
摘要:
Wizard's Tour 无向图上的构造先从树考虑有奇效呀呀呀 首先转化问题,每次取出两条有公共顶点的边,问最多取多少次 树的情况很好办,因为同层的兄弟互相搭配不容易影响父节点的方案 如果有剩的一条,肯定先跟父节点的连边搭配较优,否则你每层剩一条也配不成 无向图的 DFN 树有个性质,就是非树边全 阅读全文
摘要:
##可持久化并查集 #include<cstdio> #include<iostream> using namespace std; const int MAXN=4e5+5; int n,m,rt[MAXN],fa[MAXN*20],cnt,kk,dep[MAXN*20]; struct ren{ 阅读全文
摘要:
###To The Moon #include<cstdio> #include<cstring> #include<iostream> using namespace std; #define ll long long const int MAXN=1e5+5; int n,m,cnt,rt[MA 阅读全文