摘要: 题意 题目链接 给定一个长度为 \(n\) 的数列 \(\{a_n\}\),试找到一个整数对 \((i,j)\),使得 \(ij-k(a_i|a_j)\) 最大,并输出最大值。(\(1\leq i<j\leq n\)) \(n\leq 10^5,0\leq k \leq \min(n,100),0\ 阅读全文
posted @ 2022-03-03 15:34 cyhforlight 阅读(44) 评论(0) 推荐(0) 编辑
摘要: A题 Reverse and Concatenate (思维) 我们记 \(rev(s)\) 为 \(s\) 的反转串。 给定一个长度为 \(n\) 的字符串,我们可以对其进行操作,用 \(s+rev(s)\) 或者 \(rev(s)+s\) 代替原字符串 \(s\)。 问,在经历恰好 \(k\) 阅读全文
posted @ 2022-03-03 13:21 cyhforlight 阅读(20) 评论(0) 推荐(0) 编辑
摘要: A题 ABC (构造) 给定一个长度为 \(n\) 的 01 串,问这个 01 串中是否存在一个长度超过 1 的回文串? \(n\leq 100\) \(n=1\) 是显然不存在 \(n=2\) 时,如果两个字符相同,那么这个串本身就是回文的,反之则不是 \(n\geq 3\) 时,我们假设第一个字 阅读全文
posted @ 2022-03-02 20:15 cyhforlight 阅读(31) 评论(0) 推荐(0) 编辑
摘要: A题 疫苗小孩 (枚举,二分) 如果只打两针,那么我们直接枚举第二针位置,然后找到最适合的打第一针的位置。 如果打三针,那么也是差不多流程,也就是在 pos - k 和 pos + k 附近找。 有点逆天,直接贴代码(set 真是好东西): #include<bits/stdc++.h> using 阅读全文
posted @ 2022-02-22 20:13 cyhforlight 阅读(30) 评论(0) 推荐(0) 编辑
摘要: A题 回文大师 B题 价值序列 (数学) 对于一个长度为 \(n\) 的正整数数列 \(\{a_n\}\),记数列价值为 \(\sum\limits_{i=1}^{n-1}|a_i-a_{i+1}|\)。数组长度为 1 时,价值为 0。 问,这个数列有多少个子序列(不要求连续),其价值和原价值相同? 阅读全文
posted @ 2022-02-16 15:00 cyhforlight 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 官方题解 A题 R (二分/双指针) 给定一个长度为 \(n\) 的纯大写字母字符串,我们想要知道,这个字符串有多少个连续子串,内部有至少 \(k\) 个 R,且不包含 P。 \(1\leq n\leq 2*10^5,1\leq k\leq 20\) 官方题解有两个解法,我们这里用第二个(因为我也是 阅读全文
posted @ 2022-02-16 10:10 cyhforlight 阅读(102) 评论(0) 推荐(0) 编辑
摘要: A题 Min Max Swap 共 \(T\) 组数据。(\(1\leq T \leq 100\)) 给定两个长度为 \(n\) 的数列 \(\{a_n\},\{b_n\}\),你现在可以进行不限量次操作,每次选择一个 \(p(1\leq p\leq n)\),并交换 \(a_p,b_p\),问怎样 阅读全文
posted @ 2022-02-07 12:09 cyhforlight 阅读(27) 评论(0) 推荐(0) 编辑
摘要: A题 智乃的Hello XXXX(签到) 输出 \(\text{hello xxx}\),其中 xxx 可以是任意字符串 随便输出个啥来签下到就行,不过还是建议跟一个 ASCII码构成的字符串,防止乱码。 print("hello world") B题 智乃买瓜(01背包) 现在有 \(n\) 个瓜 阅读全文
posted @ 2022-02-04 22:10 cyhforlight 阅读(26) 评论(0) 推荐(0) 编辑
摘要: A题 小沙的炉石(数学,思维) 现在我们有 \(n\) 张攻击牌和 \(m\) 张回蓝牌。攻击牌消耗一格蓝量,并且对对方造成 1 点普通伤害和附带的法伤。回蓝牌则回复一格蓝量(蓝量无上限)。 此外,我们每使用一张牌之后,可以使得我们的法力伤害值增加 1,可叠加(初始值为 0)。 现在有 \(k\) 阅读全文
posted @ 2022-02-03 20:00 cyhforlight 阅读(43) 评论(0) 推荐(0) 编辑
摘要: A题 九小时九个人九扇门 (数学规律+DP) 我们记一个数的数字根 \(\operatorname{f}(x)\) (\(x>0\))的定义如下: int f(int x) { if (x < 10) return x; int v = 0; while (x) { v += x % 10; x / 阅读全文
posted @ 2022-01-28 22:23 cyhforlight 阅读(37) 评论(0) 推荐(0) 编辑