自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 树上启发式合并(详解)

借用了一个节点到根的路径上轻边个数不会超过logn条。故重节点保留,轻节点删去,多重统计。实际复杂度(nlogn)

2024-10-21 19:49:01 386

原创 【AGC005D】~K Perm Counting(计数抽象成图)

注意到位置为id,权值为v ,不合法的情况,当且仅当 v = id+k或 v= id-k。dp(i,j,pd)表示考虑到第i号点, 连了j条边,是否有连接i 到 i-1号点。因此,我们把每一个位置和权值抽象成点 ,不合法的情况之间连一条边,可以构成二分图。由此可知,当选了n条边,就恰好n个位置不合法,限制条件是:连的边不能相邻,求出f(m) ,f(m)指代至少有m个位置不合法的方案数。由此总共有2n 个点 k 条链,链与链之间无边 互不干涉。把二分图展开成k条链,进行dp。简单的乘法原理罢了。

2024-10-01 18:52:56 3041 1

原创 【UR #1】外星人(dp思维技巧)

f[i][j]表示前i个数答案为j的方案数不选i 则加上f[i][j] 的方案数 * (n-i),ai可以在后面随便选。选i 则加上f[i][j] 的方案数,ai定在了i这个位置。

2024-09-26 17:56:51 257

原创 【欧拉函数变化】[SDOI2012] Longge 的问题

转化为 k*gcd(i/k,j/k) = 1 (i,j%k = 0)。本质就是利用互质转化到了欧拉函数的领域上。求和 gcd(i,j)

2024-09-25 17:34:32 425

原创 P4549 【裴蜀定理及其推广】

ax + bx2 + cx3 + knx = x 的充要条件是c%gcd(x1,x2,x3..xn)ax + by = c 有整数解的充要条件是 c%gcd(a,b) = 0。由此可知,ax + by (x,y 整数) 的最小值是 gcd(a,b)

2024-09-25 15:53:30 314

原创 P2568 GCD(GCD求和的常用变化 欧拉函数)

通过/p改变为互质的情况。维护欧拉函数前缀和即可。

2024-09-24 17:59:27 382

原创 欧拉函数以及拓展欧拉定理

a^b = a^(b%phi(i) + phi(i)) 当phi(i)

2024-09-24 17:38:16 317

原创 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪

原理构造法令ans = c1 + c2 .. + cnci = 余数 * (c1乘到cn但不乘ci)* (c1乘到cn但不乘ci 的逆元,模ci意义下)定理:在模M = c1乘到cn 意义下,解唯一。

2024-09-24 17:09:55 340

原创 P3861 拆分【dp优化技巧 数学】

则拓宽边界采用f[i][j] += f[pos][j-1];//本质上就是加上了a[j]*a[pos] 的方案 (单对多)记f(i,j) 表示a[i]被拆分成若干个(数量不限)

2024-09-24 07:43:41 279

原创 逆元 P3811

由整除性得 -p/i = p-p/i;所求 x 即逆元 exgcd.故有代码(只用了递推。

2024-09-22 14:29:29 147

原创 P1516 青蛙的约会(exgcd以及相关结论)

非常好的题,适合入门拓展欧几里得算法以及相关结论。

2024-09-22 13:40:53 319

原创 Lanterns (dp 紫 线段树 二分 维护dp)

让所有点被覆盖,那么状态可以设计成覆盖一段前缀,并且中间不允许出现断点由于CF崩了,所以暂时没提交代码。记f(i) 为前 i 个灯笼点亮的最长前缀。由于答案具有保留性,所以单调性成立。由此推转移方程。共鸣:i 与 t (i > t) 号灯,可以完全覆盖1至i ,条件 f(t)>= i - a[i] -1 至少自给自足。max_range(l,r) 区间[l,r]最大的i + a[i]对于第二种情况,我们在3中特判。from i :i如果往左看,from i 到 i-1 就向右看。

2024-09-21 23:17:38 499

原创 KMP 详解

和求kmp差不多,如果匹配不上,求让a[i]和以j结尾的连续子串的最长前缀匹配。退出循环后,若还能匹配上则j++(本质是,加上i的贡献。则kmp[i]表示 以i结尾的连续子串 = s的前缀的最大值(等价于前缀最大结尾处)则,让j = kmp[j] 即成为以j结尾的 连续子串 的 最长前缀 尾部的下标。如果b[j+1]!= b[i]下一个位置匹配不上(即不能成为前缀)当匹配不上时,匹配串b至少会前移1位,由指针的思想。j 表示上一个字符可以成功匹配的长度(等价于下标)然后让kmp[i] = j即可。

2024-09-05 17:24:41 400

原创 P3587 [POI2015] POD

注意到,设计一个Hash函数,维护前缀异或和。双指针让 r 找大于 n 一半的位置。

2024-08-18 09:13:38 251

原创 如何判断树上一个点是否在直径上

注意到,向上最长链+向下最长链 = 直径 之时 ,点在直径上。

2024-08-14 18:50:21 369

原创 P3423 [POI2005] BAN-Bank Notes

dp[u] 表示要达到 u 面值的币数。

2024-08-14 14:45:39 344

原创 P3572 [POI2014] PTA-Little Bird

注意力惊人。注意到,只有两种决策 选高过自己的树中代价最小的。或者 选低于自己的树种代价的最小的+1。由此,维护一个优先队列即可。

2024-08-14 13:31:58 500

原创 P3957 [NOIP2017 普及组] 跳房子(青春版代码)

一个答案合法 当且仅当 l

2024-08-14 12:35:29 310 2

原创 P2680 [NOIP2015 提高组] 运输计划(树上二分答案)

答案这个字眼很重要,因为,二分出来的就是答案。

2024-08-14 08:59:19 538

原创 [BJ 省选] 严格次小生成树 (树上LCA)

求最近公共祖先、并维护最大值、次大值。

2024-08-13 20:20:50 875

原创 P1967 [NOIP2013 提高组] 货车运输

建最大生成树,树上维护倍增祖先,倍增最小值。

2024-08-13 18:17:02 192

原创 异象石【set、lca、dfn与遍历思想】

在Adera的异时空中有一张地图。这张地图上有N个点,有N−1条双向边把它们连通起来。起初地图上没有任何异象石,在接下来的M个时刻中,每个时刻会发生以下三种类型的事件之一:地图的某个点上出现了异象石(已经出现的不会再次出现);地图某个点上的异象石被摧毁(不会摧毁没有异象石的点);向玩家询问使所有异象石所在的点连通的边集的总长度最小是多少。请你作为玩家回答这些问题。下图是一个例子,* 节点表示出现了异象石(图中有5个),双线的边表示被选为连通异象石的边集(图中有6条)。

2024-08-13 15:38:27 392

原创 P5836 [USACO19DEC] Milk Visits S(树上并查集)

对于相同颜色且相邻的点合并。若在同一集合,同色1 异色0。若不在同一集合,则0。

2024-08-13 10:39:51 308

原创 【树上点差分、LCA】Max Flow P

本质上就是,对树进行差分。自底向上进行统计处理。

2024-08-13 09:20:07 365

原创 P4155 [SCOI2015] 计划

然后再加上自己这个哨兵,和走回自己的一个哨兵即可。若可以走到且 r < 终点 则答案 +

2024-08-12 21:14:20 425

原创 【唐氏题目 nt题】与众不同

与众不同## 题目描述A是某公司的CEO,每个月都会有员工把公司的盈利数据送给A,A是个与众不同的怪人,A不注重盈利还是亏本,而是喜欢研究「完美序列」:一段连续的序列满足序列中的数互不相同。A想知道区间[L,R]之间最长的完美序列长度。## 输入格式第一行两个整数N,M,N表示连续N个月,编号为0到N−1,M表示询问的次数;第二行N个整数,第i个数表示该公司第i个月的盈利值ai;接下来M行每行两个整数L,R,表示A询问的区间。## 输出格式。

2024-08-12 19:53:43 560 1

原创 [模板] 线段树区间加乘

所以,分别维护标记 add 和 mul 即可。

2024-08-12 08:45:34 310

原创 论线段树=八股文

五大函数:建树、更新、查询、以下推上、以上传下。写出这五大函数,一道线段树的题目就写完了。考虑子状态的转移,推导出父节点状态即可。

2024-08-11 19:54:56 309

原创 色板游戏 (珂朵莉树+优化)

加一个记录答案,就可以过掉全部数据。用珂朵莉树处理区间赋值、计算颜色。

2024-08-09 16:45:33 313

原创 P5677 [GZOI2017] 配对统计(线段树爆改莫队)

贵州的省选,线段树代码太长了,直接莫队启动。时间复杂度O(n sqrt(n))加了个奇偶优化。先按块排左指针。同一块内右指针按照块的编号奇偶性决定升序或者降序。

2024-08-09 15:03:20 688

原创 P1083 [NOIP2012 提高组] 借教室

线段树维护区间最小+带修区间-xtag标记要子区间减去多少,实时更新。

2024-08-09 09:34:19 344

原创 【CF27D】Ring Road 2(二分图、紫题)

第一道独立AC的紫题。(十分激动)## 题面翻译有n个城市,1->2->3->...->n->1,形成一个环,现在要添加m条给定的路,路可以建设在环内或环外,求如何建设可以使得新的路两两不相交(端点除外)。## 题目描述## 输入格式## 输出格式## 样例 #1### 样例输入 #1```4 21 32 4```### 样例输出 #1```io```## 样例 #2### 样例输入 #2```6 31 33 55 1```

2024-08-08 21:52:49 1176

原创 P5921 [POI1999] 原始生物(欧拉路plus)

某一个连通块缺了x个入度,则则连x-1条可构成欧拉路径(可以有两个点少1或者多1)。则一个连通块的贡献是(m-1)。(不用回到起点,所以不必为m)这里,可以感性地理解成增加了x-1条边,就会有x-1个点被调用。由于有向图 :入度总和 = 出度总和 所以,必然可以匹配成功。初始化一下,ans = m+1(至少的数量)一条点如果m为其入度,则他会被使用m次。若不存在,则考虑添加x条边来达到目的。将出度不够的点连一条于入度不足的点上。考虑图中存在 c 个连通块。考虑每一个连通块的贡献。

2024-08-08 16:06:43 214

原创 P3469 [POI2008] BLO-Blockade(组合数学的割点)

/向上处理 ,判断删去之后上方节点的大小。//单纯自己与别人匹配。sum表示当前u删去后新增的连通块大小(实时更新)则ans[u] += (sum*size[v])若u为割点,则判定点v构成的子树与u不连通。size[u]子树大小。

2024-08-08 10:25:12 147

原创 【模板】2-SAT - 洛谷

若每一条件的一半不满足,则另一半一定要满足。让d(u,v) 表示u,v可否由u退出v。若有解,要满足u不能推出u+n或者反过来。u 表示变量 u 取0 ,u+n取 1;处理方式:tarjan建立图,求连通分量。因此,变量会有可否相互推出的关系。若u与U+n连通则无解。判断u,v的连通性。

2024-08-07 13:42:02 316

原创 P3008 [USACO11JAN] Roads and Planes G

连通块统计后,形成DAG。

2024-08-06 16:43:20 431

原创 线段树、贪心与推销员

核心:利用线段树处理贪心内容。建两个线段树维护两端。

2024-08-02 21:59:46 235

原创 二分、单项指针与小数换分数

核心:判断的时候利用单调性、小数取近似值置换分数。

2024-08-02 20:32:38 124

原创 【拓扑排序】

核心:利用拓扑dp,取前置条件最大值,因为,互不关联的可以同时做,同时做取max。

2024-08-02 20:30:34 248

原创 单调栈、组合数学

过去的不好删去,我来做最近的好。____单调栈如是说。子问题,当做求同一直线上的最大矩阵(单调栈)本质:分成子问题,每一行一个问题来求解。左边,不能取等,来保证唯一性。右边,可以取等,以保证多样性。考虑一个点为中央,何以去重?

2024-08-02 13:52:53 291

c++提高/省选级算法模板

各种算法模板,包括线段树、平衡树、图论、数论相关。适用于OIer、ACMer

2024-10-22

# AHOI2008 紧急集合 / 聚会

# [AHOI2008] 紧急集合 / 聚会 ## 题目描述 欢乐岛上有个非常好玩的游戏,叫做“紧急集合”。在岛上分散有 $n$ 个等待点,有 $n-1$ 条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要花费一个游戏币。 参加游戏的人三人一组,开始的时候,所有人员均任意分散在各个等待点上(每个点同时允许多个人等待),每个人均带有足够多的游戏币(用于支付使用道路的花费)、地图(标明等待点之间道路连接的情况)以及对话机(用于和同组的成员联系)。当集合号吹响后,每组成员之间迅速联系,了解到自己组所有成员所在的等待点后,迅速在 $n$ 个等待点中确定一个集结点,组内所有成员将在该集合点集合,集合所用花费最少的组将是游戏的赢家。 小可可和他的朋友邀请你一起参加这个游戏,由你来选择集合点,聪明的你能够完成这个任务,帮助小可可赢得游戏吗? ## 输入格式 第一行两个正整数 $n$ 和 $m$,分别表示等待点的个数(等待点也从 $1$ 到 $n$ 进行编号)和获奖所需要完成集合的次数。 随后 $n-1$ 行,每行两个正整数

2024-08-13

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除