• 2025-01-052025多校冲刺省选模拟赛2
    2025多校冲刺省选模拟赛2\(T1\)A.aw\(10pts/20pts\)部分分\(10\sim20pts\):枚举每一种定向方案,略带卡常。点击查看代码constintp=998244353;structnode{intnxt,to;}e[200010];inthead[100010],dis[1010][1010],a[100010],b[100010],g[2][100010],c
  • 2024-12-23AT_keyence2019_e Connecting Cities 题解
    题目传送门前置知识Boruvka算法解法考虑Boruvka算法。拆掉绝对值后得到\(a_{i}+id,a_{i}-id,a_{j}+id,a_{j}-id\)四个式子。vector启发式合并辅助线段树查询的常数过大,无法通过。上述做法的常数在于一条边会被计算两次,考虑优化。不妨直接钦定向前连、向后连的贡献,顺
  • 2024-12-21高一上十二月下旬日记
    12.21鲜花做题纪要LibreOJ121.「离线可过」动态图连通性线段树分治板子。点击查看代码intu[500010],v[500010],w[500010],st[500010],ed[500010],ans[500010];pair<int,int>e[500010];map<pair<int,int>,int>f;structquality{intid,fa,siz;};structDSU
  • 2024-11-24【MX-S7】梦熊 NOIP 2024 模拟赛 3 & SMOI Round 2(同步赛)
    【MX-S7】梦熊NOIP2024模拟赛3&SMOIRound2(同步赛)\(T1\)luoguP11323【MX-S7-T1】「SMOI-R2」HappyCard\(20pts\)发现可以把「炸弹」也看做「三带一」。先使用「三带一」带走原用于出「单牌」的牌,若「三带一」还有剩余则尝试带走原用于出「对子」的牌,否则直接
  • 2024-12-02# 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第11周学习总结
    学期(如2024-2025-1)学号(如:20241402)《计算机基础与程序设计》第11周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上
  • 2024-09-14数据结构
    数据结构栈栈,一种基本的先进后出的线性数据结构,手写栈一般有一个指针指向栈顶元素。STL中有个容器叫stack,支持一些功能push,将元素放置在栈顶;top(),输出栈顶元素pop(),弹出栈顶元素size(),访问栈中元素clear,清空详细操作可以见栈手写栈可以用数组模拟栈,代码如下。
  • 2024-09-06AT_keyence2019_e Connecting Cities 题解
    B算法萌萌题。题解看到完全图求最小生成树,必然是要考虑一下B算法能不能做的。发现这个题的联通块最小值是可以维护的。我们发现。假如我们钦定\(i\)往前面连。那么前面的最小权值必然是一个固定的值。我们一定会连到\(\min(a_j-j\timesD)\)上。由于不能连到自己
  • 2024-08-23[ARC083F] Collecting Balls
    MyBlogs[ARC083F]CollectingBalls建图,连边\((x_i,y_i+n)\),这样会形成一个基环树森林。对于基环树的每条边,需要把他归到他连接的两个点中任意一个,并且每个点只能拥有一条边。对于每个基环树分别计算,树边归属的点一定是它两端深度较大的那个,环边归属点整体只有两种方式:顺时针
  • 2024-08-20暑假集训CSP提高模拟 25
    暑假集训CSP提高模拟25组题人:@KafuuChinocpp|@H_Kaguya\(T1\)P235.可持久化线段树\(0pts\)弱化版:SP11470TTM-Tothemoon标记永久化主席树板子。点击查看代码constllp=998244353;lla[100010];structPDS_SMT{ llroot[100010],rt_sum; structSegme
  • 2024-08-18P10693 [SNCPC2024] 换座位
    [SNCPC2024]换座位题目描述树王国在筹备着举办一次盛大的庆典!Shirost作为树王国的庆典设计师,准备邀请\(n\)个嘉宾来参加本次庆典。庆典上一共准备了\(2n\)个座位,一个座位最多只能坐一个人且一个人恰好坐一个座位。Shirost初步计划将第\(i\)个嘉宾安排在第\(i\)个座
  • 2024-08-16P4271 [USACO18FEB] New Barns P 题解
    题目传送门前置知识树的直径|最近公共祖先|并查集解法一个显而易见的结论:设点集\(A\)的直径的两个端点为\(u_{1},v_{1}\),另一个点集\(B\)的直径的两个端点为\(u_{2},v_{2}\),则\(A\bigcupB\)的直径端点一定是\(\{u_{1},v_{1},u_{2},v_{2}\}\)中的两个。还有
  • 2024-08-16P10238 [yLCPC2024] F. PANDORA PARADOXXX 题解
    题目传送门前置知识树链剖分|树的直径|最近公共祖先|并查集解法正着删边不太可做,考虑离线下来反着加边。一个显而易见的结论:设点集\(A\)的直径的两个端点为\(u_{1},v_{1}\),另一个点集\(B\)的直径的两个端点为\(u_{2},v_{2}\),则\(A\bigcupB\)的直径端点一定是
  • 2024-08-14暑假集训CSP提高模拟20
    暑假集训CSP提高模拟20组题人:@KafuuChinocpp\(T1\)191.Kanon\(0pts\)原题:luoguP7405[JOI2021Final]雪玉|雪玉(Snowball)\(T2\)P154.SummerPockets\(0pts\)原题:[ARC157D]YYGarden\(T3\)199.空之境界\(60pts\)原题:QOJ1833.Deleting部分分
  • 2024-08-09AT_past202010_m 筆塗り 题解
    题目传送门前置知识线段树|树链剖分解法观察到要维护树上信息,且更改的呈链状,考虑进行树链剖分。将边权转化成点权,钦定边权给了深度更深的那个点,注意更新时不能更新\(\operatorname{LCA}\)。区间赋值和单点查询用线段树维护即可。代码#include<bits/stdc++.h>usingnam
  • 2024-08-08暑假集训CSP提高模拟16
    暑假集训CSP提高模拟16组题人:@Muel_imj\(T1\)P216.九次九日九重色\(100pts\)部分分\(30pts\):设\(f_{i,j}\)表示当前处理到\(P\)的第\(i\)位,\(Q\)的第\(j\)位时最大的\(k\),状态转移方程为\(f_{i,j}=\begin{cases}\max(f_{i,j-1},f_{i-1,j})&p_{i}\nmid
  • 2024-08-07暑假集训CSP提高模拟15
    暑假集训CSP提高模拟15组题人:@LYinMX\(T1\)P213.串串\(15pts\)原题:luoguP5446[THUPC2018]绿绿和串串部分分\(15pts\):当\(|S|=1\)时输出\(1\),否则顺序输出\([2,|S|]\)。正解由题,有\(R\)一定是\(S\)的前缀。赛时在这里被绕进去,一直在想怎么证
  • 2024-08-05[Violet 6]故乡的梦 题解
    前言题目链接:Hydro&bzoj。题意简述无向联通图给出起点终点,多次询问删边后最短路,或报告不连通。\(n,m,q\leq2\times10^5\)。题目分析首先想到,如果删掉的边不是原来最短路的边,那么最短路不会发生变化。因此我们只需考虑删除了原来在最短路上的边。不妨把原先最短路任
  • 2024-07-257.25第二周周四学习总结
    算法竞赛(差分)(上午)初始化#include<algorithm>intarr[100];std::fill(arr,arr+100,0);//比memset更高效intarr[100]={};//所有元素都初始化为0栈溢出为局部变量每次运行时都在运行栈中分配,如果数组很大,结果会造成运行栈溢出,自然就运行不了另外,使用全局变
  • 2024-07-22暑假集训 加赛1
    暑假集训加赛1P145修仙(restart)题目中的可以指恰好。考虑计算双休带来的差值。令\(b_{i}=a_{i}+a_{i+1}-\max(a_{i}+a_{i+1},0)\),则需要计算从\([1,n)\)中选出\(k\)个不相邻的\(b_{i}\)的最大价值,同luoguP1484种树|luoguP1792[国家集训队]种树|
  • 2024-07-19暑假集训CSP提高模拟2
    暑假集训CSP提高模拟2\(T1\)T2745.活动投票\(30pts\)原题:luoguP2397yyylovesMathsVI(mode)懒得再复制一遍了,直接挂当时的题解得了。点击查看代码intmain(){lln,a,sum=0,ans=-0x7f7f7f7f,i;scanf("%lld",&n);for(i=1;i<=n;i++){