07 2020 档案

摘要:题解:建议看官方题解 #include <bits/stdc++.h> using namespace std; #define fi first #define se second typedef long long LL; typedef pair<int, int> pii; const in 阅读全文
posted @ 2020-07-30 09:19 从小学 阅读(104) 评论(0) 推荐(0) 编辑
摘要:题解:这里主要讲一下官方题解的调和级数是怎么来的,因为当我们确定了一个最大 \(Ancient Distance = x\) 时,我们可以最多只用 \(\frac{n}{x}\) 个关键的就可以让这棵树的 \(Ancient Distance = x\) ,所以我们用 \(ans[i]\) 表示当关 阅读全文
posted @ 2020-07-29 11:03 从小学 阅读(129) 评论(0) 推荐(0) 编辑
摘要:思路:题目的边权是由随机数给出的,所以最短路径上的边数不会很长,有多条不同走法的最短路的情况出现的概率也很低,所以可以先找出一条最短路,删掉一条边后,转化为 \(k - 1\) 的子问题继续求解,直到 \(k = 0\) ,记录最大值就好。。。。 #include <iostream> #inclu 阅读全文
posted @ 2020-07-28 19:47 从小学 阅读(172) 评论(0) 推荐(0) 编辑
摘要:题解:首先分析,要大于给出的模式串并且尽可能小,那么一定是优先找和给出的模式串公共前缀尽可能长的字串,假设模式串 \(t\) 的长度为 \(tlen\) , 且 \(t[tlen + 1] = a - 1\) ,那么思路的流程大概如下 1、首先后缀自动机上寻找匹配 \(t\) 的最长字串, 假设长度 阅读全文
posted @ 2020-07-28 10:14 从小学 阅读(86) 评论(0) 推荐(0) 编辑
摘要:思路:由于是字典序,所以肯定是越前面的字符对整体的字典序的影响越大,所以我们先看最小的 \(p[i]\) , 假设最小的 \(p[i] = st\) ,并且 \(d[i] != st \% 10\) 。 如果 \(d[i] < st \% 10\) , 那么 \(s_1 - s_i\) > \(s_ 阅读全文
posted @ 2020-07-26 16:59 从小学 阅读(141) 评论(0) 推荐(0) 编辑
摘要:[POI2011]ROT-Tree Rotations #include <cstdio> #include <algorithm> #include <queue> #include <stack> #include <string> #include <string.h> #include <m 阅读全文
posted @ 2020-07-24 14:55 从小学 阅读(123) 评论(0) 推荐(0) 编辑
摘要:思路:首先想到暴力做法,每次将 其他点并到节点 \(a\) 时,删掉 \(a\) 现有的连边并将新加入的 \(group\) 中的点连出去的所有边连到 \(a\) 上,并将的这些节点的父亲设为 a, ​ 每次都这么操作,是能保证可以得出正确结果的,但是一定会 \(tle\) ,维护父亲节点我们可以用 阅读全文
posted @ 2020-07-18 18:31 从小学 阅读(210) 评论(2) 推荐(0) 编辑
摘要:题意:找出文本串中字典序第 k 大的字符串 思路: 首先我们不能仅仅按后缀数组排完序后每个字符串的大小来找,因为重复字符也参与排名,比如 AAB 2, 结果是 A 而不是 AA。 注:以下第 i 个后缀均指排完序后第 i 小的后缀。 所以我们二分找第 k 大的字符串位于哪个区间,假定我们现在确定目标 阅读全文
posted @ 2020-07-17 20:44 从小学 阅读(102) 评论(0) 推荐(0) 编辑
摘要:思路:bitset优化dp,具体怎么做请看这篇博客 https://www.cnblogs.com/EchoZQN/p/13320776.html #include <bits/stdc++.h> using namespace std; const int maxn = 4e4 + 50; int 阅读全文
posted @ 2020-07-16 19:02 从小学 阅读(117) 评论(0) 推荐(0) 编辑
摘要:思路: 1、首先假设这棵树的结果已经确定,我们统计每颗子树的 w[i] 的和 val,显然 val[1] = \(\sum_{i=1}^n w[i]\) , 假设我们当前选定点 u ,处于点 u 时的结果为 f[u], 点 u 的深度为 depeth[u], 接下来遍历 u 的子节点 v,由于已知 阅读全文
posted @ 2020-07-15 17:22 从小学 阅读(245) 评论(0) 推荐(0) 编辑
摘要:思路:这题本来是要卡一手log,但数据水了,除去求gcd,就二维单调队列裸题 #include <cstdio> #include <algorithm> #include <queue> #include <stack> #include <string> #include <string.h> 阅读全文
posted @ 2020-07-14 21:52 从小学 阅读(97) 评论(0) 推荐(0) 编辑
摘要:思路:很明显最小割,但直接跑Dinic一定会超时,所以要将原图转化成对偶图来跑最短路,至于怎么转化,建议去搜其他人的博客。 #include <cstdio> #include <algorithm> #include <queue> #include <stack> #include <strin 阅读全文
posted @ 2020-07-14 19:03 从小学 阅读(230) 评论(0) 推荐(0) 编辑
摘要:思路:枚举三种情况, 假设三条边分别是 t1, t2, t3 且 t1 ⇐ t2 ⇐ t3。 Case1:t3 = x, 那么只要找两个小于等于 x 的且最接近 x 的数就好了,通过 map 维护集合可方便的求出。 Case1:t2 = x, 那么只要找一个最接近 x 且 ⇐ x 和一个最接近 x 阅读全文
posted @ 2020-07-14 18:57 从小学 阅读(199) 评论(2) 推荐(0) 编辑
摘要:思路:首先将所有后缀的hash值求出来,并对每个后缀出现的次数计数, 之后枚举每个串的前缀, 假设串 a 的存在对应后缀的前缀为 s1, s2, s3, |s1| < |s2| < |s3|, 假设 s3 对应串1,串2,串4 的后缀,首先 ans += cnt[s3], 然后看 s2, 若 s2 阅读全文
posted @ 2020-07-14 17:35 从小学 阅读(159) 评论(0) 推荐(0) 编辑
摘要:A substring of a string T is defined as: T(i, k)=TiTi+1...Ti+k-1, 1≤i≤i+k-1≤|T|. Given two strings A, B and one integer K, we define S, a set of tripl 阅读全文
posted @ 2020-07-11 11:30 从小学 阅读(143) 评论(0) 推荐(0) 编辑
摘要:The little cat is majoring in physics in the capital of Byterland. A piece of sad news comes to him these days: his mother is getting ill. Being worri 阅读全文
posted @ 2020-07-11 09:19 从小学 阅读(106) 评论(0) 推荐(0) 编辑
摘要:A string s is called an (k,l)-repeat if s is obtained by concatenating k>=1 times some seed string t with length l>=1. For example, the string s = aba 阅读全文
posted @ 2020-07-10 23:33 从小学 阅读(130) 评论(0) 推荐(0) 编辑
摘要:Lost and AekdyCoin are friends. They always play "number game"(A boring game based on number theory) together. We all know that AekdyCoin is the man c 阅读全文
posted @ 2020-07-07 12:40 从小学 阅读(130) 评论(0) 推荐(0) 编辑
摘要:背单词,始终是复习英语的重要环节。在荒废了3年大学生涯后,Lele也终于要开始背单词了。`` 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法。比如"ab",放在单词前一般表示"相反,变坏,离去"等。 于是Lele想,如果背了N个词根,那这些词根到底会不会在单词里出现呢。更确切的描述是: 阅读全文
posted @ 2020-07-04 18:39 从小学 阅读(122) 评论(0) 推荐(0) 编辑