摘要: P5687 [CSP-S2019 江西] 网格图 简单来说题目就是给定一个\(n\times m\)的网格图,同行边权相同,同列边权相同,求该网格图的最小生成树。 根据Kruskal算法的贪心思想,我们要优先选择权值尽可能小的行,并将这条边应用于尽可能多的列。列方向同理。 为了保证最终生成树的连通性 阅读全文
posted @ 2024-11-15 20:57 Sinktank 阅读(96) 评论(0) 推荐(0)
摘要: 校内自命题模拟赛,密码:校OJ地址 http://___.__._.__:____/ 补全 阅读全文
posted @ 2024-11-15 07:06 Sinktank 阅读(1) 评论(0) 推荐(0)
摘要: 校内自命题模拟赛,密码:校OJ地址 http://___.__._.__:____/ 补全 阅读全文
posted @ 2024-11-13 19:45 Sinktank 阅读(2) 评论(0) 推荐(0)
摘要: P3119 [USACO15JAN] Grass Cownoisseur G 显然我们可以先跑强连通分量,由\(x\)个点缩成的新点\(u\)权值为\(v[u]=x\)。 下文中的节点\(1\)均表示缩点后节点\(1\)所在的节点。 我们在缩点后的DAG上跑拓扑排序,预处理出\(fa[i]\)和\( 阅读全文
posted @ 2024-11-13 18:32 Sinktank 阅读(79) 评论(0) 推荐(0)
摘要: P3225 [HNOI2012] 矿场搭建 挖煤点坍塌相当于把该点和与其相连的边在图上删掉。 借用wjyyy的题解,我们定义“叶子连通块”为“只包含\(1\)个割点的点双连通分量”,“非叶子连通块”为“包含\(\ge 2\)个割点的点双连通分量”。 如下图,橙色点是割点,红色框圈出的是点双,加粗的是 阅读全文
posted @ 2024-11-13 15:12 Sinktank 阅读(83) 评论(0) 推荐(0)
摘要: [题解]Refact.ai Match 1 (Codeforces Round 985) A~C A - Set 显然答案是\(\max(\lfloor\frac{r}{k}\rfloor-l+1,0)\)。 点击查看代码 #include<bits/stdc++.h> #define int long long using namespace std; int t,l,r,k; signed 阅读全文
posted @ 2024-11-11 21:01 Sinktank 阅读(302) 评论(0) 推荐(1)
摘要: [题解]P11233 [CSP-S 2024] 染色 P11233 [CSP-S 2024] 染色 设 \(f[i][j=0/1]\) 表示涂到第 \(i\) 位,且第 \(i\) 为颜色为 \(j\),则考虑用 \(i\) 之前能和 \(i\) 匹配的位置 \(p\) 进行转移。\(p\) 需要满足下面的条件: \(a[p]=a[i]\)。 \(p\ 阅读全文
posted @ 2024-11-11 17:04 Sinktank 阅读(252) 评论(0) 推荐(1)
摘要: [题解]2024/10/29 模拟赛 A~C 校内自命题模拟赛,密码提示:happystar___? 阅读全文
posted @ 2024-11-01 22:06 Sinktank 阅读(10) 评论(0) 推荐(1)
摘要: [题解]P4552 [Poetize6] IncDec Sequence P4552 [Poetize6] IncDec Sequence 我们对\(a\)做差分,得到数组\(b\)。\(a\)的区间修改,等价于选定\(i,j\in[1,n+1]\),令\(b[i]\leftarrow (b[i]+1),b[j]\leftarrow (b[j]-1)\),我们的目标是让\ 阅读全文
posted @ 2024-10-24 22:57 Sinktank 阅读(135) 评论(0) 推荐(0)
摘要: [笔记]Z函数(扩展KMP) 对于长度为\(n\)的字符串\(S\),定义\(z[i]\)表示\(S\)本身和\(S[i,n]\)这个后缀的最长公共前缀(LCP)的长度,(特别地,\(z[1]\)可以记为\(0\)或\(n\))则\(z\)被称为\(S\)的Z函数。 扩展KMP算法可以在\(O(n)\)的时间复杂度内求得\(S\ 阅读全文
posted @ 2024-10-23 19:59 Sinktank 阅读(144) 评论(0) 推荐(0)
摘要: [题解]P7114 [NOIP2020] 字符串匹配 P7114 [NOIP2020] 字符串匹配 可以想到枚举\(AB\)的长度\(k\),然后再枚举\(AB\)的循环次数\(i\),用字符串哈希判断当前\(i\)是否合法。预处理出\(S\)的前缀和后缀中出现奇数次的字符个数,对于每个\((AB)^i\),查询出\(F(C)\),然后再计算\(F(A 阅读全文
posted @ 2024-10-23 16:33 Sinktank 阅读(144) 评论(1) 推荐(2)
摘要: [题解]2024/10/22 模拟赛 A~D 校内自命题模拟赛,密码提示:happystar___? 阅读全文
posted @ 2024-10-23 07:53 Sinktank 阅读(2) 评论(0) 推荐(0)
摘要: [题解]P2671 [NOIP2015 普及组] 求和 P2671 [NOIP2015 普及组] 求和 可以发现我们对相同颜色且编号奇偶性相同的元素归为一组,组内的元素两两都满足题目条件,且这样可以不重不漏覆盖所有答案。 设分完组之后,某一组内的元素编号分别是\(a_1,a_2,\dots,a_q\),数字分别是\(b_1,b_2,\dots,b_q\) 阅读全文
posted @ 2024-10-22 20:39 Sinktank 阅读(92) 评论(0) 推荐(0)
摘要: [题解]2024/10/21 模拟赛 A~C 校内自命题模拟赛,密码提示:happystar___? 阅读全文
posted @ 2024-10-21 20:15 Sinktank 阅读(3) 评论(0) 推荐(0)
摘要: [题解]P1311 [NOIP2011 提高组] 选择客栈 P1311 [NOIP2011 提高组] 选择客栈 P6032 选择客栈 加强版 只要\([l,r]\)区间之内存在一个\(i\)使得\(w[i]\le p\),这个区间就是符合条件的。 所以我们遍历每一个元素\(i\),根据贪心的思想我们维护\([1,i]\)区间内满足\(w[i]\le p\)的 阅读全文
posted @ 2024-10-17 16:24 Sinktank 阅读(94) 评论(0) 推荐(1)
摘要: [题解]NOIP2018模拟赛 plutotree 题目描述 给定一棵有\(n\)个节点的树,根节点为\(1\),节点\(i\)有权值\(w[i]\)。这棵树非常奇怪,它的每个叶子结点都有一条连向根节点的边。给定\(q\)次询问,每次给定\(u,v\),请计算出一条\(u\)到\(v\)的路径(每条边最多经过\(1\)次),最小化该路径上的点权之和, 阅读全文
posted @ 2024-10-16 21:08 Sinktank 阅读(272) 评论(0) 推荐(1)
摘要: [题解]P3952 [NOIP2017 提高组] 时间复杂度 P3952 [NOIP2017 提高组] 时间复杂度 我们把循环的嵌套关系看做树形结构,梳理一下\(3\)种情况: 直接跳过当前子树: \(x,y\in\mathbb{N}\),且\(x>y\)。 \(x=\tt{"n"},y\in\mathbb{N}\)。 不跳过,并在处理完所有子节点后追加\(n 阅读全文
posted @ 2024-10-16 19:09 Sinktank 阅读(119) 评论(0) 推荐(1)
摘要: [题解]ABC374 A~E A - Takahashi san 2 直接判断字符串是否以san结尾即可。 点击查看代码 #include<bits/stdc++.h> using namespace std; int main(){ string s; cin>>s; int n=s.size(); if(s[n-1]=='n 阅读全文
posted @ 2024-10-06 11:14 Sinktank 阅读(148) 评论(0) 推荐(1)
摘要: [题解]P7077 [CSP-S2020] 函数调用 P7077 [CSP-S2020] 函数调用 题意简述 给定一个长度为\(n\)的序列\(a_1,a_2,\dots,a_n\),给定\(m\)个函数,每个函数可能是下面\(3\)种类型,用\(T_x\)表示函数\(x\)的类型: \(T_x =1\),对下标\(p\)增加\(v\)。 \(T_x 阅读全文
posted @ 2024-10-04 17:02 Sinktank 阅读(162) 评论(0) 推荐(1)
摘要: [题解]MX-X6 A~B Portal:https://www.luogu.com.cn/contest/200833 \(\bf{100+100+12+0+7+0=\color{indianred}219}\)\(\bf{\ ,\ rk230}\) A - もしも 容易发现可以构造\(1,x\)或\(x,1\)让序列如\( 阅读全文
posted @ 2024-10-04 12:53 Sinktank 阅读(62) 评论(0) 推荐(1)
摘要: [题解]SFMOI Round I A~C Portal:https://www.luogu.com.cn/contest/179008 \(\bf{100+50+50+25+5=\color{indianred}225}\)\(\bf{\ ,\ rk.\ 184}\) A - Strange Cake Game 显然对于小W,向下移动蛋糕刀 阅读全文
posted @ 2024-10-04 11:14 Sinktank 阅读(62) 评论(0) 推荐(0)
摘要: [笔记]Tarjan算法 定义 DFS树相关 我们对一个有向连通图进行DFS遍历,会得到一棵DFS树。 DFS树的形态是根据我们DFS的顺序来决定的,因此对一个有向连通图来说,它的DFS树可能有多个。我们把这棵树的边称作树边。 其他边我们分为\(3\)类: 前向边:从\(u\)到它dfs树上的祖先的边。 后向边:从\(u\) 阅读全文
posted @ 2024-09-01 14:04 Sinktank 阅读(169) 评论(0) 推荐(0)
摘要: [笔记]CSP-S 2024 第一轮 查漏补缺 复习内容部分来自NOI大纲中入门级和提高级的内容。 联合体(Union) 联合体是一种复合数据类型,其的定义上与结构体的定义类似。 与结构体不同,联合体中的所有元素共用一块内存,所以它占空间大小一般是最大成员的大小(不考虑对齐的情况下),相应地,任意时刻只有一个成员带有值,如果访问其他成员,得到的值 阅读全文
posted @ 2024-08-25 22:26 Sinktank 阅读(258) 评论(0) 推荐(0)
摘要: [题解]P2444 [POI2000] 病毒 P2444 [POI2000] 病毒 题目核心是多模式匹配,所以考虑用对所有模式串建立AC自动机。 我们把自动机上,存在一个模式串作为前缀的节点,称作“危险节点”。 如果无限长的安全代码存在的话,匹配过程中Trie图上一定有节点会经过多次,即存在环;而且经过的所有节点都不是“危险节点”,否则就包含病 阅读全文
posted @ 2024-08-21 18:12 Sinktank 阅读(76) 评论(0) 推荐(0)
摘要: [题解]P3311 [SDOI2014] 数数 P3311 [SDOI2014] 数数 看到多模式匹配,我们考虑先对所有模式串建立AC自动机。 然后发现这道题和P4052 文本生成器(题解)挺像的,后者让求包含至少一个模式串的个数,这道题让求一个也不包含的个数,这个就是一个用不用\(26^m\)去减的问题,很好处理。但这道题还多了一个条件,“幸运 阅读全文
posted @ 2024-08-21 09:39 Sinktank 阅读(51) 评论(0) 推荐(0)
摘要: [题解]P4052 [JSOI2007] 文本生成器 P4052 [JSOI2007] 文本生成器 正难则反,我们发现用总字符串个数\(26^m\),减去不可读的字符串个数,可以得到结果。 下文中的“答案”均表示“不可读的字符串个数”。 要使一个字符串不可读,就不能让任何模式串在其中出现。如果某个主串的第\(i\)位与自动机的节点\(j\)相匹配,那么 阅读全文
posted @ 2024-08-20 13:15 Sinktank 阅读(76) 评论(0) 推荐(0)
摘要: [题解]UVA1127 Word Puzzles UVA1127 Word Puzzles 我们对模式串建立AC自动机,然后就比较板子了,只需要把\(8\)个方向都跑一遍匹配就可以了。 对于单个测试数据,建自动机复杂度是\(O(\sum|s|\ |\Sigma|)\),总时间复杂度是\(O(\sum|s|\ |\Sigma|+8nm)\)。 注意输 阅读全文
posted @ 2024-08-19 16:04 Sinktank 阅读(76) 评论(0) 推荐(0)
摘要: [题解]P3966 [TJOI2013] 单词 P3966 [TJOI2013] 单词 对所有模式串建立AC自动机。 用\(p[i]\)来表示经过节点\(i\)的字符串个数。 那么节点\(u\)的答案就是fail树上,以\(u\)为根的子树的\(p\)之和。 由于我们已经计算了\(p[i]\),所以字符串\(i\)作为模式串本身&模式串前缀的情况 阅读全文
posted @ 2024-08-12 20:16 Sinktank 阅读(52) 评论(0) 推荐(0)
摘要: [题解]P2292 [HNOI2004] L 语言 P2292 [HNOI2004] L 语言 注: 下文中,\(s[l\sim r]\)表示截取字符串\(s\)的第\(l\)个字符到第\(r\)个字符。 文字描述的字符串下标从\(1\)开始,但代码实现从\(0\)开始。 我们建出AC自动机后,有一个比较暴力的思路。 我么用\(f[i]\)表示待查找 阅读全文
posted @ 2024-08-12 17:01 Sinktank 阅读(66) 评论(0) 推荐(0)
摘要: [笔记]KMP算法 - 下(例题) CF1200E Compress Words ~ 洛谷 给定\(n\)个字符串,请按下面的规则,从左往右依次合并\(n\)个字符串,成为\(1\)个字符串: 将\(A,B\)合并,就是找到最大的\(i\),使得\(A\)的长为\(i\)的后缀和\(B\)的长为\(i\)的前缀相等,删除\(A\)的这 阅读全文
posted @ 2024-08-03 19:44 Sinktank 阅读(109) 评论(0) 推荐(0)
★CLICK FOR MORE INFO★ TOP-BOTTOM-THEME
Enable/Disable Transition
Copyright © 2023 ~ 2025 Sinktank - 1328312655@qq.com
Illustration from 稲葉曇『リレイアウター/Relayouter/中继输出者』,by ぬくぬくにぎりめし.