摘要: 前言 其实之前是学过扫描线的,但在此进行一个系统梳理(目前仅涉及到最基本的东西) 扫描线 扫描线是什么 拿出最经典的图 发现就是扫描矩形的边(同一方向的),把矩形的一边当入边,另一边当出边,从下往上扫(从入边方向扫),将图形分成若干矩形(为区分暂且叫做矩块)。 扫到一个入/出边就查询当前矩块的长(平 阅读全文
posted @ 2026-07-16 20:08 wang7979 阅读(5) 评论(0) 推荐(0)
摘要: U234960 山海经 题目背景 “南山经之首,曰鹊山。其首曰招摇之山,临于西海之上,多桂,多金玉。 有草焉,其状如韭而青华,其名日祝余,食之不饥…… 又东三百里,曰堂庭之山,多棪木,多白猿,多水玉,多黄金。 又东三百八十里,曰猿翼之山,其中多怪兽,水多怪鱼,多白玉,多蝮虫,多怪蛇,名怪木,不可以上 阅读全文
posted @ 2026-07-15 21:26 wang7979 阅读(8) 评论(0) 推荐(0)
摘要: P4396 [AHOI2013] 作业 题目描述 此时己是凌晨两点,刚刚做了 Codeforces 的小 A 掏出了英语试卷。英语作业其实不算多,一个小时刚好可以做完。然后是一个小时可以做完的数学作业,接下来是分别都是一个小时可以做完的化学,物理,语文……小 A 压力巨大。 这时小 A 碰见了一道非 阅读全文
posted @ 2026-07-15 21:20 wang7979 阅读(8) 评论(0) 推荐(0)
摘要: 既然是EX,那cost是多少 扩展欧几里得 int exgcd(int a,int b,int &x,int &y) { if(b==0) { x=1; y=0; return a; } int ret=exgcd(b,a%b,x,y); int t=x; x=y; y=t-a/b*y; retur 阅读全文
posted @ 2026-07-14 21:57 wang7979 阅读(9) 评论(0) 推荐(0)
摘要: 所需变量 int size=0; int topbit=1; vector<int> tree; 辅助操作 int lowbit(int x){return x&(-x);} void init(int x) { size=x; topbit=1; while((topbit<<1)<=size) 阅读全文
posted @ 2026-07-14 21:42 wang7979 阅读(5) 评论(0) 推荐(0)
摘要: 无旋treap(FHQ) 基本操作 新建 int New(int val) { tot++; v[tot].val=val; v[tot].rnd=rand(); v[tot].size=1; return tot; } 分裂 void split(int rt,int val,int &x,int 阅读全文
posted @ 2026-07-14 21:28 wang7979 阅读(4) 评论(2) 推荐(0)