上一页 1 2 3 4 5 6 ··· 13 下一页
摘要: 凸包,是指能包含点集中所有点的最小凸多边形(三维就是凸多面体)。显然,凸包的所有顶点都是点集中的点。凸包通常有两种出题套路,分别是计算几何(直接求有关凸包的信息)和决策单调性(类似于斜率优化 dp)。由于凸包本身并不好维护且不一定全都用得上,在信息学竞赛中,通常维护上凸壳或下凸壳。凸包可以有这两个凸 阅读全文
posted @ 2025-06-28 18:13 长安一片月_22 阅读(368) 评论(0) 推荐(0)
摘要: 好久没有做过这么巧妙的题目了,开心捏O(∩_∩)O~ 由于传送的 \(y,z\) 坐标自选,所以实际上对于一个点给出的坐标 \((a_i,b_i,c_i)\) 以及这个点调查的花费 \(cs_i\),我们只需要维护 \(a_i,cs_i\) 即可。那么设规定的 \(x\) 值为 \(x_0\),那么 阅读全文
posted @ 2025-06-28 11:11 长安一片月_22 阅读(13) 评论(0) 推荐(0)
摘要: 我们可以将每一次结束后手中所持有的 \(A,B\) 纪念券的数量为横纵坐标,这样就可以将每一次货币兑换后的结果转化为一个点。根据题目最后的提示,我们可以证明,在每一天中,我们只需要统计当天所能赚到的最多的钱全部转化为纪念券的情况即可。这样我们就可以建立上凸壳,计算每一次的最优解。 由于是动态加点,还 阅读全文
posted @ 2025-06-27 11:04 长安一片月_22 阅读(9) 评论(0) 推荐(0)
摘要: 容易发现答案即为重要城市的上凸壳的长度。考虑将正序删点转化为倒序删点,就变成了经典动态加点求凸壳。 对于动态加点求凸壳的问题,我们考虑使用 set 进行维护。因为这样可以较快的找到加入点 \(y\) 在凸壳上的前驱 \(x\) 和后继 \(z\)。我们先判断 \(y\) 是否能加入上凸壳,相当于询问 阅读全文
posted @ 2025-06-26 15:16 长安一片月_22 阅读(12) 评论(0) 推荐(0)
摘要: 设加入的第 \(i\) 个向量为 \((a_i,b_i)\),询问的向量是 \((x,y)\),则有(下假设 \(a_i>a_j\)): \[a_ix+b_iy>a_jx+b_jy \]\[-(a_i-a_j)x<(b_i-b_j)y \]\[\begin{cases} \dfrac{b_i-b_j 阅读全文
posted @ 2025-06-26 11:20 长安一片月_22 阅读(19) 评论(0) 推荐(0)
摘要: 尝试收录目前我掌握的所有模版。 //树状数组 namespace BIT{ int c[N]; void clear(){ memset(c,0,sizeof(c)); }void add(int x,int k){ for(;x<=n;x+=x&-x) c[x]+=k; }int sum(int 阅读全文
posted @ 2025-06-24 11:47 长安一片月_22 阅读(10) 评论(0) 推荐(0)
摘要: 60+50+10+21=141pts,rk6。 A.Lesson 5! 容易想到使用传奇拓扑排序对所有点进行拓扑排序,然后我们考虑实用数据结构(multiset/可删堆/权值线段树)对答案进行维护。我们设以 \(x\) 为终点的最长路长度为 \(f_x\),以 \(x\) 为起点的最长路长度为 \( 阅读全文
posted @ 2025-05-05 09:12 长安一片月_22 阅读(17) 评论(0) 推荐(0)
摘要: 突然发现我的凸包学的有点假…… 考虑每个妖怪的答案肯定是 \(at_i+dn_i+at_i\times\frac ba+dn_i\times\frac ab\)。设 \(c=\frac ba>0\),令 \(at_i>at_j\),则有: \[\begin{aligned} (c+1)at_i+(1 阅读全文
posted @ 2025-05-03 17:04 长安一片月_22 阅读(16) 评论(0) 推荐(0)
摘要: 两个操作相当于区间加等差数列和求区间最大值,过于复杂,考虑分块。 对于每个块,我们记录 \(ad_j\) 表示这个块内每个位置共同的增量,记录 \(cd_j\) 表示这个块内整体加上的等差数列的公差。我们可以通过将部分等差数列的值转移到 \(ad_j\) 中去,这样每个位置的值就是: \[ans_i 阅读全文
posted @ 2025-05-03 09:40 长安一片月_22 阅读(23) 评论(0) 推荐(0)
摘要: 这题一脸 01 分数规划的长相,考虑对答案进行二分。 设最大答案为 \(cmax\),则当 \((-x_ic+y_i)+(-p_jc+q_j)\ge 0\) 时,\(c\le cmax\)。不等式左半侧前后两个部分相互独立且解法相近,可以分别处理。我们只考虑 \(-x_ic+y_i\) 的最大值,这 阅读全文
posted @ 2025-04-20 16:02 长安一片月_22 阅读(16) 评论(0) 推荐(0)
摘要: 题目让求最大加权回路,容易想到插头 \(dp\)。其余的就很常规了。 #include<bits/stdc++.h> using namespace std; const int N=2205,M=105; int n,m,mp[N][M][10],c[M][10]; bool vis[N][M][ 阅读全文
posted @ 2025-04-06 08:48 长安一片月_22 阅读(14) 评论(0) 推荐(0)
摘要: 注意到有可爱的相邻位置小限制,考虑对这个地方进行优化。 我们设 \(f_{i,j,s}\) 表示我们目前已经考虑了前 \(i\) 种数,已经加入了 \(j\) 个数到数列里,\(<i\) 且 \(\ge i-4\) 的数的状态为 \(s\),则有: \[f_{i,j,s}(\operatorname 阅读全文
posted @ 2025-03-30 20:25 长安一片月_22 阅读(25) 评论(0) 推荐(0)
摘要: 显然的,假如把每队 \((u_i,v_i)\) 都连一条 \(u_i\to v_i\) 的边,那么一定会形成一棵树,但有外向边也有内向边,其中外向边的定义是从近 \(1\) 点连向远 \(1\) 点的边,内向边相反。 先考虑只有外向边的情况。显然 \(1\) 号必须最后抽,概率为 \(\frac{w 阅读全文
posted @ 2025-03-30 15:15 长安一片月_22 阅读(18) 评论(0) 推荐(0)
摘要: 问题的关键在于赶谁下车、最早啥时候能赶。显然赶下去的人会形成多段区间。我们把司机也当成乘客,同时对于所有人按 \(d_i\bmod t\) 的值升序排序,就会发现: 假如我们在某一时间点想要赶 \(i\) 下车,下一个收费站前最后一个想喝水的人是 \(j\),那么我们一定会把 \([i,j]\) 这 阅读全文
posted @ 2025-03-29 16:19 长安一片月_22 阅读(12) 评论(0) 推荐(0)
摘要: 哇,真的是神仙中的神仙题,很可怕很可怕。 首先显然的性质是答案与树形态无关,因为其它点肯定在原先的边上或点下,而显然此时答案与树的形态本身是没有关系的。 我们考虑对于最后的 \(k\) 个点做状压 \(dp\)。设 \(f_{i,s}\) 表示枚举到第 \(i\) 个数,最后 \(k\) 个点的祖先 阅读全文
posted @ 2025-03-26 18:03 长安一片月_22 阅读(50) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 ··· 13 下一页