随笔分类 -  算法竞赛

ACM/ICPC/CCPC
摘要:Codeforces Round 973 (Div.2) A-E题解 比赛传送门 A. Zhan's Blender 数学 显然答案为 \(\lceil \frac{n}{min(x,y)} \rceil\)。 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2024-09-23 15:50 Showball 阅读(501) 评论(2) 推荐(1)
摘要:莫队简单入门 补最近一场DIV.4 时遇到一道需要求区间众数的题目,完善一下技能树。 简介: 莫队是一种解决离线区间询问问题的方法。能够在 \(O(n\sqrt{n})\) 的时间复杂度内求出所有询问的答案。 大致流程: 1.将所有数据分块。有时需要离散化。 2.将所有询问离线,并排序。 3.对于区 阅读全文
posted @ 2024-09-06 16:32 Showball 阅读(95) 评论(0) 推荐(0)
摘要:CF 2010 C2. Message Transmission Error (hard version) (*1700) 字符串+哈希 题目链接 题意: 给你一个字符串,让你判断是否是由某个字符串首尾拼接重叠而成的。 思路: 做法很多,最暴力就直接枚举字符串长度,然后哈希即可。 代码: #incl 阅读全文
posted @ 2024-09-04 14:56 Showball 阅读(171) 评论(0) 推荐(0)
摘要:CF 1994 D. Funny Game(*1900) 鸽巢原理+并查集 题意: 给你一个长度为 \(n\) 的操作,你可以进行 \(n-1\) 次操作,操作数从 \(1\) 开始递增。每次操作你可以选择两个数字 \(u\) 和 \(v\) ,如果 \(|a_x-a_y|\) 能够整除操作数 \( 阅读全文
posted @ 2024-09-03 00:37 Showball 阅读(70) 评论(0) 推荐(0)
摘要:CF 1994 C. Hungry Games (*1600) 思维+二分 题目链接 题意: 给你一个长度为 \(n\) 的关卡,和一个正整数 \(x\),初始分数为 \(0\),通过每个关卡就会获得对应的分数。 但是分数如果超过 \(x\),就会清零。现在让你求出满足最终得分不为零的所有子区间数量 阅读全文
posted @ 2024-09-02 23:23 Showball 阅读(36) 评论(0) 推荐(0)
摘要:CF 1996 E. Decode(*1600) 思维+前缀和 题目链接 题意: 给你一个长度为 \(n\) 的二进制字符串,求出所有的子区间的所有满足 \(0\) 的个数等于 \(1\) 的个数的子区间个数之和。 思路: 首先,求一段区间是否满足 \(0\) 的数量是否等于 \(1\) 的个数,是 阅读全文
posted @ 2024-09-02 14:36 Showball 阅读(41) 评论(0) 推荐(0)
摘要:CF 1999 G2. Ruler (hard version) (*1900) 交互+三分 题目链接 题意: 现在给你一把暗尺,它缺少了一个数字 \(x\) ,那么当你测量的物品长度小于 \(x\) 时,测量值就是准确的。 否则,测量值就会大 \(1\) 。 现在,你可以进行查询,每次查询可以给出 阅读全文
posted @ 2024-09-02 14:27 Showball 阅读(25) 评论(0) 推荐(0)
摘要:CF 2001 D. Longest Max Min Subsequence(*1900) 思维 题目链接 题意: 给你一个长度为 \(n\) 的序列 \(a\) ,设 \(S\) 是 \(a\) 的所有可能的非空子序列的集合,且没有重复的元素。你的目标是找出 \(S\) 中最长的序列。如果有多个序 阅读全文
posted @ 2024-09-02 14:12 Showball 阅读(56) 评论(0) 推荐(0)
摘要:CF 2002 D1. DFS Checker (Easy Version) (*1900)思维 题目链接 题意: 给你一棵 \(n\) 个节点组成的完全二叉树,并给出一个排列 \(p\) 。接下来进行 \(q\) 次询问。 每次询问给你 \(x\) 和 \(y\) ,你需要交换 \(p_x\) 和 阅读全文
posted @ 2024-09-02 13:59 Showball 阅读(47) 评论(0) 推荐(0)
摘要:CF 2004 D. Colored Portals (*1600) 二分 题目链接 题意: 有 \(n\) 座城市,编号从 \(1\) 到 \(n\) 。传送门一共有 \(4\) 种颜色,每个城市有两种不同颜色的传送门。若城市 \(i\) 和城市 \(j\) 有相同颜色的传送门。那么就可以花费 \ 阅读全文
posted @ 2024-09-02 13:49 Showball 阅读(88) 评论(0) 推荐(0)
摘要:假的字符串 Trie+拓扑排序 题目链接 题意: 给定n个字符串,互不相等,你可以任意指定字符之间的大小关系(即重定义字典序),求有多少个串可能成为字典序最小的串,并输出它们。 思路: 我们可以对每个字符串单独判断,考虑当前 \(s_i\) 为字典序最小的串。那么首先要满足的条件就是 \(s_i\) 阅读全文
posted @ 2024-08-01 08:35 Showball 阅读(12) 评论(0) 推荐(0)
摘要:KMP1(字符串基本概念,KMP算法和简单应用) 基础定义 字符串 \(S\):无特殊说明,字符串仅由26个小写字母\('a'-'z'\) 构成, 并用大写字母表示一个字符串。 \(|S|\):表示一个字符串的长度 \(S[i]\) : 表示字符串 \(S\) 第 \(i\) 个位置的字母,下标从 阅读全文
posted @ 2024-07-29 20:07 Showball 阅读(48) 评论(0) 推荐(0)
摘要:Codeforces Round 957 (Div. 3) A-G 题解 A. Only Pluses 枚举 思路: 枚举 \(a\) , \(b\) , \(c\) 增加的次数,维护最值即可。 代码: #include<bits/stdc++.h> using namespace std; #de 阅读全文
posted @ 2024-07-12 22:02 Showball 阅读(434) 评论(0) 推荐(3)
摘要:字典树(Trie) Trie 是一种能够快速插入和查询字符串的多叉树结构。 节点的编号各不相同,根节点编号为 \(0\) ,其他节点用来标识路径。 还可以标记单词插入的次数。边表示字符。 一般情况下,Trie维护字符串的集合,支持以下两种操作: 1.向集合中插入一个字符串。 2.向集合中查询一个字符 阅读全文
posted @ 2024-07-09 01:10 Showball 阅读(42) 评论(0) 推荐(0)
摘要:Acwing 5729.闯关游戏 状压DP 题目链接 题意: 现在进行一个闯关游戏,一共有 \(n\) 个关卡,第 \(i\) 个关卡的分数为 \(w_i\)。另外还有 \(k\) 个联动彩蛋。如果玩家通过第 \(x\) 个关卡后,紧接着通过了第 \(y\) 个关卡,就可以获得额外 \(c\) 分。 阅读全文
posted @ 2024-07-08 16:41 Showball 阅读(18) 评论(0) 推荐(0)
摘要:CF 1981 D. World is Mine (*1800) DP+博弈论 题目链接 题意: 有 \(n\) 个蛋糕, 每个蛋糕有一个美味值 \(a_i\), \(Alice\) 和 \(Bob\) 轮流吃蛋糕, \(Alice\) 每次必须选择吃严格大于之前所吃的蛋糕美味程度。 \(Bob\) 阅读全文
posted @ 2024-07-03 16:38 Showball 阅读(147) 评论(0) 推荐(0)
摘要:CF 1955 E. Long Inversions (*1700) 贪心 差分 题目链接 题意: 给你一个长度为 \(n\) 的二进制字符串,你可以选择一个整数 \(k\) ,然后可以选择连续的 \(k\) 个字符进行反转。如果能够操作任意次将字符串变成全 \(1\) 字符串。那么这个 \(k\) 阅读全文
posted @ 2024-06-25 15:58 Showball 阅读(47) 评论(0) 推荐(0)
摘要:CF 1956 C. Nene's Magical Matrix (*1600) 构造 题目链接 题意: 给你一个 \(n\times n\) 的矩阵,你现在有两个操作,可以将一行或者一列全部赋值为一个大小为 \(n\) 的排列。构造使得矩阵和最大的方案。 思路: 观察样例,手玩一下,发现他们一定构 阅读全文
posted @ 2024-06-25 14:29 Showball 阅读(47) 评论(0) 推荐(0)
摘要:CF 1968 E. Cells Arrangement (*1600) 构造 题目链接 题意: 给你一个 \(n\times n\) 的网格,请你在其中选择 \(n\) 个单元格,使得两两单元格之间曼哈顿距离种类数最大。 思路: 一开始想到 \((1,1)\) 和 \((n,n)\) 是必须要放的 阅读全文
posted @ 2024-06-24 14:33 Showball 阅读(19) 评论(0) 推荐(0)
摘要:CF 1968 F. Equal XOR Segments (*1800) 思维 题目链接 题意: 给你一个长度为 \(n\) 的数组,如何可以把数组分成 \(k(k>1)\) 组,并且使得每组的异或和相等,那么这个数组就是完美的。现在给你 \(q\) 组询问,每次给你 \(l,r\) 。请你判断 阅读全文
posted @ 2024-06-24 14:14 Showball 阅读(14) 评论(0) 推荐(0)