自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DengDuck蒟蒻之家

超弱超弱的

  • 博客(77)
  • 收藏
  • 关注

原创 Tan Junming 太帅,AK IOI!

tanjunming是一个非常帅气的人。他拥有一双明亮的眼睛,透露出聪明和热情的光芒。他的笑容温暖而迷人,总能让人感到快乐和舒适。他的面容线条清晰,轮廓深邃,展现出他的自信和坚定。他的皮肤光滑细腻,散发出健康和活力的气息。tanjunming的身材高大挺拔,展现出他的健康和活力。他的肌肉线条紧致有力,展示出他的坚持和努力。他的姿态优雅自如,无论是行走还是站立,都散发出一种自信和魅力。除了外貌上的吸引力,tanjunming还是一个非常聪明和有才华的人。

2023-08-22 19:10:44 396 3

原创 2023“钉耙编程”联赛 Day 3 L 题 Inference 题解

给定m个特征,你想基于大量的数据,再通过Alice的前m−1个特征的值推断出她的最后一个特征的值。特征之间的关系可以表示为一个有向无环图,其中一个节点A指向一个节点B表示B是依赖于A的随机变量。下面的公式可以根据其他数据计算Alice的最后一个特征的值的概率,其中xi​表示第i个特征,πxi​表示指向xi​的节点,cntPxm​∣x1​xm−1​cPx1​xm​i1∏m​Pxi​∣πxi。

2023-08-15 21:17:10 228

原创 AtCoderABC312 C~E 题题解

感觉在所有 C 题中算难的。首先我们发现由于题中的x是用来比较的,在此条件下,我们只关心x的排名。进一步地,我们发现只要选用ai​和ai​1可以表示出所有的排名(bi​也是一个道理),而且这样是使x最小的,因为你大了排名没变,不值。所以我们只需要尝试ai​和ai​1bi​和bi​1找出答案即可。怎么判断正确性呢?由于题目相当于是在找排序后的一段前缀或者一段后缀,所以我的思路是排序之后使用 STL 的二分查找函数解决。longlong。

2023-08-02 13:35:40 321

原创 P3059 [USACO12NOV] Concurrently Balanced Strings G 题解

现在是2023年7月29日凌晨1点47分,我听着我歌单的歌,进入了精神极其不正常的状态(正经人谁在凌晨边听摇滚边写题啊)。所以我会胡言几句,大家请选择性忽视。这道题是我们欢乐赛搬的,考场上用朴素的Onm2双指针水出了89分的佳绩。考试之后因为没有暴切十分气愤啊!所以研读了一手第一篇题解,写出了这个没什么区别但是有大区别的高级重置优秀版。

2023-07-29 02:42:18 256

原创 2023“钉耙编程”联赛 Day 3 E 题 - Out of Control 题解

题面由我校翻译组激情制造。有一个云服务API来帮助用户存储历史时间戳。每个用户的数据结构最初是一个空堆栈。每次向API发送带有整数x(表示当前时间戳)的请求时,服务器都会将x附加到堆栈的末尾。若x小于堆栈中存储的前一个时间戳时,服务器将认为输入是错误的,将加入前一个时间戳入堆栈而不是x。您已经发布了n次API,您的请求时间戳在第i次调用中是xi​。然而,网络已经失控。服务器可能以任意顺序接收您的请求,甚至可能错过某些请求。

2023-07-26 21:54:27 244

原创 典中典之我的创作纪念日

通过我的博客,我可以与全球的科技爱好者和专业人士分享我的观点和见解,促进思想的交流和碰撞。最重要的是,成为科技博客创作者,我能够为他人提供有价值的科技信息和指导,影响和启发更多的人走向科技的未来。我希望通过我的博客,能够不断发掘和分享最新的科技趋势和突破,为读者带来关于未来科技生活的激动和想象。我渴望成为一个连接科技界和大众的桥梁,为人们解读科技的影响和应用,帮助他们更好地适应和利用科技的力量。我希望能够影响更多的人,激发他们对科技的兴趣,并激发年轻一代的创新精神,推动科技的持续发展,造福人类社会的未来。

2023-07-26 09:05:51 212

原创 [USACO14DEC] Cow Jog G 题解

Farmer John 的N头奶牛1≤N≤105正在一条长度无限的跑道上慢跑,每头奶牛都有一个不同的开始位置,以及不同的跑步速度。为了方便奶牛们互相超越,整个跑道被分成了若干条赛道。在同一时刻,不可能有在同一条赛道上的两头奶牛占据相同的位置。现在奶牛们要跑T分钟,在跑步过程中,他们不会改变自己所在的赛道和自己跑步的速度。FJ想要知道,为了奶牛间不会发生冲突,他需要至少准备多少条赛道。

2023-07-25 20:37:43 166

原创 程序员锻炼思维的好题![USACO13OPEN] Figure Eight G 超级详细题解

Farmer John’s cows recently received a large piece of marble, which, unfortunately, has a number of imperfections. To describe these, we can represent the piece of marble by an NNN by NNN square grid (5≤N≤300)(5 \leq N \leq 300)(5≤N≤300), where the chara

2023-07-24 11:50:15 103

原创 2023“钉耙编程”联赛 Day 2 K 题 - SPY finding NPY

题面由迪茵公学翻译组倾情翻译。最近,SPY已经退出了XCPC(中国大学生编程竞赛)。但他零开始学习算法并赢得ICPC(国际大学生编程竞赛)金牌的回忆仍然历历在目,所以他正在寻找一个青年作为他的学徒,取得金牌。SPY非常受欢迎,有n个青年想成为他的学徒。由于SPY只需要一个学徒,所以他给这些青年设置了一个测试。规则如下:这些青年从1到n编号。SPY将按顺序面试这些青年,第i个青年将在第i个面试中接受测试。每个青年面试结束后,SPY会得到他/她的智商指数(IQ,一个范围在0。

2023-07-21 19:57:50 136

原创 2023“钉耙编程”联赛 Day 2 G 题 - foreverlasting and fried-chicken 题解

题面经过我校选手感性+理性+恶搞翻译。众所周知,在北京理工大学有两位ACM英雄分别被称为和。他们分别沉浸在完美的爱情中。以下链接讲述了的爱情故事。DuangDuck喜欢图论和数学,他需要你的帮助解决一个简单的问题。给定一个简单无向图命名为,其中有n个节点和m条边。请注意,该图不一定是连通的。节点从1到n进行标号。DuangDuck想知道在图中有多少个图。以上图像定义了一个图。请注意,当两个图的边集之间至少有一条不同的边时,这两个图被认为是不同的。换句话说,给定的图GVE。

2023-07-21 09:39:04 266

原创 2023“钉耙编程”联赛 Day 1 E 题题解之典中典三哈希跑不过 FLT 老师的双哈希

我们发现其实两者交集不为空即可,所以我们找到一个比较有特点的量描述字符串比较好,我们改一下,用循环所得的最大哈希值代表这个字符串即可。我们发现两个字符串可以通过循环位移使其相同,则两个字符串循环位移所得字符串的集合必定相同。我们把两个字符串循环位移得到的所有字符串哈希值相加判断即可。你需要快速判断两个字符串是否可以通过循环位移使其相同。家人们,谁懂啊,我写了三哈希还是过不了,真是服了。结果发现哈希方案寄了,改了就过了。

2023-07-20 11:02:49 153 2

原创 2023“钉耙编程”联赛 Day 1 L 题题解 Play on Tree

用小粉兔的话说就是将树根复制多份,使问题变成多个游戏,每个游戏保证树根只有一个孩子。对于每个链接,我们可以选子树的边或者链接的边,如果是选链接的边,则转移到。在本题考虑换根的情况并不是很难,可以自己画图理解一手,发现我们转移到点。值怎么求,发现可以对于每条与孩子的链接分别考虑再异或起来。的情况,我们发现我们现在断边之后,对于子树的。其中的一种情况,根据前面的假设,我们转移到了。否则,我们选子树里的边,设儿子的。就是只可以断链接边的情况,得。,说明在边界我们的假设成立。值,我们必然会转换成。

2023-07-20 11:01:55 267

原创 P3134 [USACO16JAN] Lights Out G 题解

进一步地,我们不关心角度到底是多少,我们反正要把它变成一个常量了,我们不妨直接按顺时针还是逆时针给其表示内角的常量。我们要找奶牛走的路径是否唯一,判断两个路径是否相同,需要存储很多信息,而且只比较是否相等,这显然是哈希的标志。我们可以讨论一手,然后发现,我们给出点的时候(也就是输入),要么是顺时针给,要么是逆时针给,而角度与。我们直接模拟吧,当我们走的一个地方时,我们的哈希值在可重集中是唯一的,那么终止循环并更新答案即可。哈希的方式就很多了,我的方式是每条边距离乘上内角,内角用两个常数表示。

2023-07-13 10:19:27 121

原创 P8097 [USACO22JAN] Farm Updates G 题解

同时我们发现建边之前两个端点都是活跃的,所以这条边的建立时间不会对答案产生影响,但是删除是会的,我们可以记录它的删除时间。操作且断掉了所有与活跃农场的边的路径,而且变得无关就不会建边,所以一个农场的有关的时间是一个形如。其实这里做法就可以分成两种了,一种是倒过来,删点变成加点,删边变成加边们可以用并查集。接下来,我们用优先队列维护,每个点只取一次,每次取出一个最大值的点尝试更新相连的点。只要我还有关,我们的边还在,你就还是有关的,所以我们更新点的方式也就是尝试。进一步地,一个点变得无关,只可能是经历了。

2023-07-12 21:37:46 186 1

原创 [ABC309E] Family and Insurance 题解

我们初始化把标记打好之后考虑下传,尝试用。可以向下传几级的保险,若为。的儿子,边做边遍历统计即可。,则自己有保险,若为。

2023-07-11 19:35:44 293

原创 [ABC309D] Add One Edge 题解

所在的连通块的最长路,答案即为两者之和加一。显然三个区域并不关联,我们贪心地让三个最大。由于需要跑 BFS 最短路,时间复杂度为。我们考虑以下一条最短路的构成,一定是。的边(即我们添加的那条边),一条。所在的连通块的最长路,再找一条。也就是说吗,我们找一条。

2023-07-11 19:35:02 165

原创 P8905 [USACO22DEC] Strongest Friendship Group G 题解

我们发现小于原图最小度的度肯定不优,因为原图最小度可以直接选择包含全图使团体人数最大,这给了我们一个启发。在之后,由于我们要增大团体内的最小度,所以最小度的点不会被包含,因此可以考虑删掉这些点。注意到动态删点加维护连通块大小不好做,但是动态维护点的度数不难,我们先利用。维护删点顺序,再倒着加点,变成动态加点维护连通块大小,并查集即可维护。这个时候问题由变回了原样,我们可以继续找最小度的点,如此类推。我们可以考虑枚举最小度求最大的团体人数。

2023-07-08 11:31:43 229

原创 [ABC218G] Game on Tree 2 题解

这是一道缝合题。可以看作两道题。说句实话,我觉得 BinBin 写得比我好,大家可以看他的。

2023-07-08 11:16:11 148

原创 P8903 [USACO22DEC] Bribing Friends G 题解

简单证明一下,如果我们在后面用了冰淇淋,前面用了钱,可以将后面的冰淇淋换成钱,把前面的钱换成冰淇淋,这样钱数不变,花费的冰淇淋变少。我们考虑枚举一个中间点,中间点以上全部使用冰淇淋,中间点以下全部使用钱,中间点两者皆可,求出最大受欢迎程度即可。因此,这道题我们可以考虑以“贿赂”所需的冰淇淋的数量从小到大排序,前面的朋友等同于汇率更大的银行。彬彬跟我聊天的时候给出了一个比喻:我们换钱的时候,总是考虑去汇率更大的银行换钱。,不难发现冰淇淋并不是另外一个需要考虑的量,而是一个可以代替钱的优惠券。

2023-07-08 09:09:20 182

原创 P9127 [USACO23FEB] Equal Sum Subarrays G 题解

首先提取出所有的区间,从小到大排个序,显然相邻的两个区间除去交集之后的部分就可以拿来更新。这里其实有几种情况,大家可以根据题目给出的性质讨论讨论,最后发现都是符合的。但是其实我们可以考虑逆着维护,也就是根据区间来更新。这种题都做不出来我是不是退化成弱智了?等价于找到两个区间,一个包含。首先根据题意不难发现输出的第。,我模拟赛打的就是这个思路。所以就可以做了,时间复杂度。,找到两者的最小差值。直接做的时间复杂度是。

2023-07-08 09:08:44 262

原创 P9016 [USACO23JAN] Find and Replace G 题解

然后左儿子为先前处理这个字符串建好的树,右儿子为当前字符对应的二叉树(即我们先前建的那 26 棵)。单个字符这个点利于建树,为了更好写,可以强制转成二叉树,字符之间用空节点代替。棵树,每棵表示一种字符,接下来对于每次替换,我们可以把对应的字符串建成树。显然,我们右儿子只给一个指针,而且可能有多个父亲,但是这不影响我们的查询。这样建出一棵树以后,用其作为替换前那个字符。次操作时的字符串生成,所以倒着做好一点。具体地,我们从左往右建,每次建一个空节点。本题解基于赞最高的题解写成。最后利用二叉树的性质处理。

2023-07-08 09:08:10 149

原创 [ABC218D] Rectangles 题解

级别的快速算法,我们可以考虑先处理出所有线段,这些线段全部平行与 y 轴,也就是。同时我们对这些线段进行归纳,能构成一个矩形的边。最后对于一类线段直接计数一手即可。

2023-07-08 09:07:19 112

原创 [ABC218F] Blocked Roads 题解

我们的做法是把原图最短路的边记录下来,然后删了原图的边再跑最短路,否则直接输出原答案。,这是最坏的情况,所以单次 BFS 的时间复杂度是。首先很多人时间复杂度估算错了,这里,我们设。

2023-07-08 09:06:48 126

原创 SPOJ Substrings 题解

充分性:如果这个节点包含这个终点,但是不包含主链上的对应节点,则两者集合有交,与结论 2 矛盾,所以如果这个节点包含这个终点则必然包含主链上的对应节点。结论 3:一个节点有一个终点当且仅当它的子树包含这个终点对应的主链的节点,一个子串在字符串中的出现次数为其子树中主链的节点的数量。发现了没有,对于一个终点等价类的子串,它们显然是有共同的出现次数的,而这一次数可以利用结论 4 求出。集合要么是包含关系,要么是非交的,且取决于一个字符串是否是另一个字符串的后缀。每个终点都有一个对应的主链的节点。

2023-07-05 10:56:19 91

原创 P3132 [USACO16JAN] Angry Cows G 题解

老实说,我一开始真止步外层二分了,里层可以二分的性质确实没想到。其实也是一个二分,我们先尝试一个点。二分终止未能找到答案则返回答案不合法。来一发很有道理的二分套二分做法。一定合法,因此可以二分答案。思维上的问题还是蛮大的。

2023-07-04 19:35:01 127

原创 [LOJ 6029]「雅礼集训 2017 Day1」市场 题解

这道题恶心之处在于区间向下取整。

2023-07-03 21:36:11 167

原创 [LOJ 6030]「雅礼集训 2017 Day1」矩阵 题解

进一步地,无论如何去生成一个全黑的行,“全黑列的数量”始终不改变,因此“填黑列的步数”不改变。显然,如果填出一个全黑的行的过程中有列变成了全黑,那么这个行也是全黑,这与全黑行不存在矛盾。否则,这个黑点一定可以填出一个全黑行,策略是先覆盖其他所有列,再覆盖自身。首先不难想到一个贪心,就是先填出一个全黑的行,然后再用其填黑列。而且在其中“填出一个全黑的行步数”我们应该最小化。:“填黑列的步数”就是“非全黑列的数量”。:填黑列的必要条件为有一个全黑的行。否则,我们先进行一个操作染黑。,我们的贪心策略是最优的。

2023-07-03 20:43:25 602

原创 快速数论变换NTT学习笔记

在中我介绍了什么是FFT,但是在文中我们也说了一嘴这玩意是有精度误差的,三角函数和复数导致我们不得不进行取整操作。只要毒瘤出题人原因,那就可以Hack FFT。根据《NOI大纲》的内容,卡精度和卡常数通常是不允许的。所以FFT通常不会寄,不必过度焦虑。但是NTT本身并不难。这时候我们就需要引入快速数论变换NTT,不过我们通常省略那个F首先我们要明确一个方向,就是FFTωtntk​ωnk​ωnk​−ωnk2n​​ωnk​ωn1​。

2023-07-02 20:46:39 202

原创 莫队学习笔记

引入问题给出一个长度为 \(n\) 的数组 \(A\),接下来 \(q\) 次询问,每次询问求 \([l,r]\) 中有多少组 \((i,j,k)\) 使得 \(a_i=a_j=a_k(i<j<k)\)。保证 \(1\leq n\leq 10^5,1\leq A_i\leq n(1\leq i\leq n)\)。莫队的基础思想——区间转移简单分析问题,貌似并没有可加性,所以分...

2023-07-01 21:27:00 40

原创 莫队算法学习笔记

莫队是一种离线算法。

2023-07-01 21:23:17 226

原创 APIO2023 游记

GDOI 和 GDKOI 的游记都咕咕咕了,而且都炸了,APIO 的游记提前发,就是要破釜沉舟。我是线上选手。

2023-05-22 19:10:01 608

原创 【阶梯博弈】HDU 4315 Climbing the Hill 题解

我们发现当所有棋子堆在边缘时,先手的操作是固定的,而后手一定有策略使得所有棋子仍然堆在边缘,也就是先手必败。这道题非常有意思,首先这个模型就一眼阶梯博弈了,但这样还不够,我们要把它转换成一个典型的阶梯博弈。移动石子相当于增大你与后面一项的距离,减小你与前一项的距离,且量是相等的。这样做的正确性怎么来呢?我们发现这个 Nim 游戏最终使得所有棋子堆在边缘。阶梯博弈,肯定是要两两配对的,只看奇数阶做 Nim 游戏。不难想到把棋子之间的距离作为阶梯博弈上的石子数量。先把国王是第一个棋子的情况特判一下。

2023-05-10 19:22:47 543

原创 浅谈一类反悔贪心的问题

我们用差分处理出相邻的数字形成区间的价值,然后我们发现这里相邻的区间占有相同的点,不可同时选择,也就是相邻的区间不可选择。需要注意的是,其实这里我们选择的数字不一定是答案方案中的数字,而是我们不断启用反悔机制,不断算上增量,得到最终答案。我们考虑一个反悔贪心,首先用一个链表来维护数列,然后,每次贪心的选择最大的数字,并标记左右不可用。个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。两边的数字,这就是我们的反悔了。

2023-05-09 14:12:33 492

原创 浅谈整除分块

不难发现,随着x增大 ,y单调不增,这说明对于相同值的y总是分布在同一块区域。这启发我们根据y值,把x分组,每组“打包”算好。

2023-05-08 19:36:09 453

原创 快速傅里叶变换FFT学习笔记

我们正常表示一个多项式的方式,形如Axa0​a1​xa2​x2...an​xn,这是正常人容易看懂的,但是,我们还有一种表示法。我们知道,n1个点可以表示出一个n次的多项式。于是,我们任意地取n1个不同的值,表示x,求出的值与x对应,形成n1个点,这就可以表示。

2023-04-30 09:29:16 1456

原创 浅谈 LIS 问题的几种做法

LIS 问题也就是最长不下降子序列问题,是一个经典的问题。

2023-04-29 11:53:07 955

原创 拉格朗日插值学习笔记

拉格朗日是好的

2023-03-22 21:14:12 103

原创 KMP算法学习笔记

算出,如果匹配失败,可以找出前面的,与后缀一样的部分,顶上来匹配,节省时间。是一样的,所以在两者的内部,肯定都会有一对长度为。,等于则问题解决,否则故技重施,再找出一个前缀。KMP是一个求解字符串匹配问题的算法。那么,我们考虑新的这个前缀后面等不等于。就方便许多了,我们将短的那个字符串的。这里的前缀和后缀概念略有不同,如。项的相同的前缀和后缀的最大长度。,则相同的前缀和后缀的最大为。再举一个例子,假设有字符串。大小的相同的前缀和后缀。总算把这个东西搞懂了…可以手动模拟理解一下。这个东西的核心是一个。

2023-03-09 12:45:05 113

原创 2021牛客OI赛前集训营-提高组(第三场) 第二题 交替 题解与结论证明

很多时候快速找到正解已经很不错了,不一定需要证明,打表找规律都是可以的,实在不行再跑一些暴力验证一下,一定要灵活。

2023-03-08 18:47:11 168

原创 2021牛客OI赛前集训营-提高组(第二场)第三题 树数树题解

有一棵树,你可以跳到一个祖先,也可以跳到一个子孙,不能走重复的点,求最长路径。

2023-03-06 20:33:33 140

空空如也

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

TA关注的人

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