• 2024-04-15Min_25 筛学习笔记
    MyBlogs杜教筛是一种能在\(\mathcalO(n^{\frac23})\)的时间复杂度内求积性函数前缀和的筛法。虽然复杂度比较优秀,但是被筛的积性函数需要满足特殊性质。Min_25筛由Min_25发明,相对更通用,其时间复杂度为\(\mathcalO(\frac{n^{\frac34}}{\logn})\)。首先构造一个完
  • 2024-03-27CF1923B的题解
    (一)注意到\(x_i\)的绝对值\(\len\)。那么统计每一个位置的血量和。先从靠近的击杀必定最优,剩余的子弹用\(sum\)存储。还是直接上代码吧。(二)AC代码。#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;intt,n,k,a[300010],dis[300010],s[300010];
  • 2023-12-27CF396C On Changing Tree 题解
    CF396C考虑将贡献表示出来:\(\forallv\in\text{subtree}_u\),\(v\)会加上\(x-(dep_v-dep_u)k\),然后发现这个东西可以维护整棵子树,即把\(x,dep_u\timesk\)和\(dep_v\timesk\)分开计算,然后\(dep_v\)可以最后再管,就变为子树加,单点和了。用树状数组维护dfs序即可。
  • 2023-09-03ABC318_E
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineendl'\n'intn,a[300010],c[300010],t[300010],s;signedmain(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(intx,i=1;i<=n;i++){
  • 2023-08-10CSP模拟17
    CSP模拟17T1弹珠游戏考虑贪心,枚举右端点,产生贡献的是没有填满的人,所以先让某些人填满是最优的。优先填满已经填了2个的,再填1个的。方案数就是每次填了相同个数的人数的乘积。code#include<iostream>#include<cstdio>#include<cstring>#include<vector>usingnamespaces
  • 2023-07-17P7333 [JRKSJ R1] JFCA 题解
    前言传送门blog思路首先看数据范围$10^5$,$O(n\log_2n)$可以过,自然想到二分。二分具有单调性,那么如何确保整个$a$序列按顺序排列呢?我们可以使用st表维护区间最大值,如果在这个距离中已经有了$a_i\geb_j$那么最大值一定指向的是新加入进来的那个值,否则在之前二分就