自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 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 211

原创 P3587 [POI2015] POD

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

2024-08-18 09:13:38 202

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

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

2024-08-14 18:50:21 308

原创 P3423 [POI2005] BAN-Bank Notes

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

2024-08-14 14:45:39 310

原创 P3572 [POI2014] PTA-Little Bird

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

2024-08-14 13:31:58 442

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

一个答案合法 当且仅当 l

2024-08-14 12:35:29 250 1

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

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

2024-08-14 08:59:19 493

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

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

2024-08-13 20:20:50 759

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

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

2024-08-13 18:17:02 164

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

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

2024-08-13 15:38:27 320

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

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

2024-08-13 10:39:51 276

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

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

2024-08-13 09:20:07 348

原创 P4155 [SCOI2015] 计划

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

2024-08-12 21:14:20 400

原创 【唐氏题目 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 459

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

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

2024-08-12 08:45:34 290

原创 论线段树=八股文

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

2024-08-11 19:54:56 288

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

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

2024-08-09 16:45:33 258

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

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

2024-08-09 15:03:20 634

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

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

2024-08-09 09:34:19 326

原创 【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 1081

原创 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 156

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

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

2024-08-08 10:25:12 120

原创 【模板】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 281

原创 P3008 [USACO11JAN] Roads and Planes G

连通块统计后,形成DAG。

2024-08-06 16:43:20 413

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

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

2024-08-02 21:59:46 218

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

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

2024-08-02 20:32:38 105

原创 【拓扑排序】

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

2024-08-02 20:30:34 229

原创 单调栈、组合数学

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

2024-08-02 13:52:53 272

原创 exgcd手写笔记

2024-01-26 10:54:34 106

原创 【DG 特长生2019】模拟赛赛后总结(2024.1.24)

因为比较板子,所以比拓扑排序的要好写一点。T2 dfs+剪枝(虽然我写挂了)因为看到大小关系,我就想到了传递性。感觉好像和大部分人的写法不太一样。打了330pt,订正后350pt。写了一种基于floyd的做法。floyd是可以维护传递性的。至此,此题的一种写法诞生了。主要是想分享一下T4。

2024-01-24 20:56:50 432

原创 Unity文字游戏开发日志(2)——存档与读档

功能是:建立一个名字的新档,每次打开游戏名字都会变。采用了Unity自带的方式PlayerPrefs。今天学习了如何存读档。

2024-01-18 01:03:58 622

原创 Unity文字游戏开发日志(1)—— 打字机效果

作者是一名OIer,因为兴趣,想在寒假期间开发一款文字游戏的demo。本博客仅用作记录,马蜂极度不符合规范。但是,可以用来避坑。

2024-01-17 17:31:16 869 2

原创 [2024 GDKOI] 游记

GDKOI长篇游记

2024-01-05 20:36:36 1097

原创 【CF245H】Queries for Number of Palindromes(字符串区间dp)

# 题面翻译题目描述给你一个字符串s由小写字母组成,有q组询问,每组询问给你两个数,l和r,问在字符串区间l到r的字串中,包含多少回文串。输入格式第1行,给出s,s的长度小于5000第2行给出q(1

2023-12-10 10:29:41 188

原创 【CF1846G】Rudolf and CodeVid-23(状压最短路)

一种病有n≤10种症状。一种病情可以用一个长度为n的01串表示,其中第i个字符表示是否出现该种症状。现有m∑m≤103种药,每种药用两个01串表示。第一个01串表示服用这种药物之后,串中被标记为1的症状将被消除。第二个01串表示,该药将产生副作用,将出现串中标记为1的症状。每种药有一个服用疗程d天,上一种药的疗程没进行完时不能使用下一种药。现给出初始病情,求最少需要几天可以消除所有症状。药可以重复使用。若不能则输出−1数据组数t≤100。

2023-12-10 10:26:41 94

原创 【CF1810E】Monsters(合并点优化)(优先队列)

可证:a[i]= 0,a[j] = 0,若i可以走到j, S(a[i]) > 2*S(a[j])的点作为起点,判断是否可以杀掉图上所有的怪。在此过程中,你可以通过一条无向边。表示杀死这个怪需要已经击杀的怪物数。上的怪已经被击杀或者可以被击杀。边的图,在每个点上有一个怪,所以可让n枚举变为log n。

2023-12-02 21:02:57 85

原创 【CF1775D】Friendly Spiders(建图)(质因子虚点)

特别的Trick

2023-12-02 19:40:21 76

原创 【CF1760G】SlavicG‘s Favorite Problem (图论预处理)

然后,若有两条(一条从a出发,一条从b出发)路径,若异或和一样,则可以用走完a的路径后,传送的b路径的终点,然后倒着走到b。预处理出点a出发所有路径的异或和(不经过点b),和点b出发所以路径的异或和(可以经过a)。你可以在任意时刻从当前所在的点跳到任意除了。所以,判断有无两条同样异或和的路径即可。

2023-12-02 18:03:54 74

原创 【CF1800E2】Unforgivable Curse (hard version)

但是有可能会有越界,不过,越界十分好处理,对于字符串中的一个位置只要保证它可以往一边移动,那他就可以通过向另一边移动(如一个位置不能往右,但是可以往左走。说明这个位置太右了,它往左移动就可以让它没有那么右。),来达到两边都可以走的目的。这是一道思维题,不考虑越界的情况下,字符可以移动到任意一个位置。所以,只需保证无法移动的字符在原串中相同即可。那么,只有两边都越界的才会无法移动。与 E1 的差异仅在。本题有多组测试数据。

2023-12-02 15:29:40 124

原创 [NOIP2023] T1词典

小 S 的词典里有n个两两不同的、长度均为m的单词w1​w2​⋯wn​。每个单词都是一个小写字母构成的字符串。小 S 可以做以下操作任意多次(可以不做):选择词典中的任意一个单词,交换其中任意两个字符。对于每个1≤i≤n,小 S 想知道,是否可以通过以上操作得到新的n个单词w1′​w2′​⋯wn′​,使得对于每个jiwi′​的字典序比wj′​都要小。n1对于两个同样长度的字符串ss1​s2​⋯sL。

2023-11-18 21:05:13 1842

# AHOI2008 紧急集合 / 聚会

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

2024-08-13

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

TA关注的人

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