
省赛
准备
梦中醉卧惊起
这个作者很懒,什么都没留下…
展开
-
Two Arithmetic Progressions
【代码】Two Arithmetic Progressions。转载 2022-09-01 16:20:16 · 383 阅读 · 1 评论 -
PepperLa‘s String
如果连续出现两个或以上的字符,压缩表示长度更短,如果只有一个,则显然不需要压缩。考虑删去一个字符使得长度减小的情况:① 删去单一字符,长度减一;② 删去两个字符中的一个,长度减一;③ 删去一个字符后,其出现次数位数减少一。否则剩余能减小长度的情况都会增大字典序(除了在结尾处删),则尽可能让删除位置靠右。不能减小长度的情况,则删去第一个字符最优。给一个字符串 s ss,可以删去一个字符,并且可以对其进行任意的压缩表示一个字符加其连续出现次数的十六进制表示,求最短的表示串,相同长度则输出字典序最小的。...转载 2022-08-28 11:13:40 · 303 阅读 · 0 评论 -
Game of Primes (博弈)
Alice需要两个都大于k的素数才能获胜,如果Bob先手,只要存在两个距离x、y相等的素数,Alice就可以获胜,因为Bob无论减哪个,Alice减另一个就可以了。初始有两个数 x 和 y,每次操作可以选择一个数减1,Alice和Bob轮流操作,指定某人先手,Alice先手的话,让Alice随便选一个减,就转化为了Bob先手。(1)如果某时刻 x == k 或 y == k,Bob胜。(2)如果某时刻 x、y都是素数,Alice胜。(3)如果(1)(2)同时满足,Bob胜。...转载 2022-08-26 23:06:48 · 399 阅读 · 1 评论 -
Jump on Axis (逆元,组合数)
最开始在0,要跳到M。(M转载 2022-08-26 22:46:24 · 198 阅读 · 0 评论 -
Wall Game(并查集)
对于输出联通块边的数量,维护一下每个集合内点的数量和重复边的数量,*6-v输出即可。n组输入,每组输入三个数字,第一个数字代表操作类型, 第二三个数字代表坐标。对于图上加点,可以给每个点的坐标离散化成序号,然后丢到并查集维护连通性。操作2:查询这个点的整个联通的快,输出整个块的边的数量。操作1:在整个图上添加点,并和相邻的点联通。转载 2022-08-24 11:15:51 · 266 阅读 · 0 评论 -
Fair Distribution (整除分块)
当且仅当能量条的数量是机器人数量的倍数时,才存在公平分配。为了避免机器人的灭绝,禁止摧毁所有的N个机器人。输入的第一行包含一个整数T(1≤T≤1000),表示测试案例的数量。对于n>m的情况,答案显然为n − m(因为m%n == m,只能把m加到跟n一样大才行)梦网拥有的唯一工具是一把强大的激光枪。每次他打开激光枪时,他正好可以做两件事中的一件。唯一一行包含两个整数n和m(1≤n,m≤108),表示机器人和能量条的初始数量。对于每个测试案例输出一行,包含一个整数,表示获得公平分配的最小成本。转载 2022-08-24 11:10:26 · 447 阅读 · 0 评论 -
Function (欧拉筛法)
3.n能分解成多个质因数相乘时,f(n) = f(最小的质因子的次幂)走一二两种情况,2.n是质数的次幂时,f(n) = p^(k / 2);1.n是质数或者1时,f(n) = 1;根据式子计算1~n的f(n)的累加和。原创 2022-08-23 00:15:58 · 144 阅读 · 0 评论 -
City (并查集 + 思维)
给出一个图,每次询问给出x ,每次将边权< x 的边摧毁,问还能互相到达的点的对数。将k值和边权排序,从大到小并查集不断加边,计算贡献即可。原创 2022-08-17 15:33:47 · 155 阅读 · 0 评论 -
Transform
给你两点(A,B,C)和(x,y,z)在三维空间。设L是穿过点(A,B,C)和原点(0,0,0)的直线。如果你把点(x,y,z)绕线L旋转r度和-r度,你将得到两个点P和Q。如果P的z坐标大于Q,则输出P,否则输出Q,我们保证解决方案是唯一的。三维几何旋转向量模板。...原创 2022-08-17 15:12:11 · 124 阅读 · 0 评论 -
Matrix
用[[1,n^2]的数填n∗n的矩阵,每个数字只能用一次,记a i 表示第i 行的最小值。转载 2022-08-17 13:05:37 · 137 阅读 · 0 评论 -
Bracket Sequence
给定括号的对数和括号的种类求出最后合法序列的数量。如果只有一种括号序列就可以直接用卡特兰数。多种匹配的括号可以转换成同一种括号。原创 2022-08-16 15:50:48 · 381 阅读 · 0 评论 -
LRU (二分)
现在要求求缓存的块数,使得对于给定的长度为n 的请求序列,少k 次命中缓存。二分一个长度并进行检验,检验时用一个s e t 维护Cache中的块编号,并按照请求序列的先后顺序进行排序,用一个m a p维护映射元素上一次的出现位置。有一个技巧,在插入元素时不要使用insert,而是使用emplace方法,避免插入时多余的一次构造和析构,可以提升程序效率。对于缓存已满的情况,则擦除set中的第一个元素(历史最久远的块),然后插入新块;3.未命中缓存,缓存已满,替换缓存中时间最久的块;缓存未满,直接插入新块。..转载 2022-08-16 11:52:11 · 151 阅读 · 0 评论 -
Visit the Park
有n个点,m条边的无向图(多路径),每条边有一个权值 ,后给定一个行进序列,问概率是多少?期望值的求法:字符串拼接的样子将每段路的期望值合并。数学期望等于 = 每一种结果 x 概率求和。1 – > 2 有三条路,值为1 2 2。2 – > 3 有两条路,值为1 4。...转载 2022-08-16 11:20:17 · 208 阅读 · 0 评论 -
Barbecue
否则每轮开始时玩家拿到的字符串都不是回文串.若此时玩家必败,即删除第一个或最后一个字符都会使得剩下的字符串是回文串,则此时的串只能形如a b , a b a b , a b a b a b , ⋯ ,⋯,这表明必败态的长度是偶数,故谁胜只与起始串长度的奇偶有关.若每次询问都用Manacher算法判断回文串,时间复杂度O ( n q ),会TLE.考虑用字符串哈希O ( n ) 预处理,每次询问O ( 1 ) 查询,时间复杂度O ( n + q )当子串为回文时,拥有这个子串的选手输掉了比赛;...原创 2022-08-14 21:52:25 · 210 阅读 · 0 评论 -
BpbBppbpBB
考虑如何统计洞数.从上往下、从左往右扫一遍字符矩阵,遇到白格子时做一遍DFS,统计每个连通块中白格子的个数,若为12 ,检查该白格子的附近是否满足洞的特征.设C型、S型印章分别用了x 、y 个.因印章不重叠,则黑格子数为146 x + 100 y ,洞数为2 x + y ,联立解出x 和y 即可.原文链接:https://blog.youkuaiyun.com/Hytidel/article/details/126287064。C型印章的黑格子数为146 ,S型印章的黑格子数为100 1.......转载 2022-08-14 14:48:16 · 645 阅读 · 0 评论 -
Candy Machine
题目链接题意 :给定一系类数组,求所有子集中的一个子集中满足严格大于这个子集的平均数的元素个数的最大值思路 :假设最终选择的集合的平均数不超过 k。为使平均数不超过 k,应将 ≤ k 的数全部选入,然后贪心选择 > k 的部分中最小的若干个数。因此将 N 个数从小到大排序后,最优解一定是一个前缀。可以先将这个数组从小到大排序,然后依次比较每次去掉最大的一个元素之后的结果,符合条件所得的ans的最大值为所求。因为如果每次去掉的是最小的数组元素的话,所得数组的平均值会变大,最后该数组中能满足严格原创 2022-08-14 14:19:01 · 449 阅读 · 0 评论 -
Minimize The Integer
有一个序列,如果相邻的两个数的奇偶性不同,就可以把它们交换。问得到的最小的序列是什么。根据题意我们可以理解为相同奇偶性的数字顺序是不能变的,能变得只是不同奇偶性的数字。所以我们可以通过两个队列来分别按顺序存储奇数和偶数,然后判断大小依次输出就行。...原创 2022-08-12 17:42:56 · 188 阅读 · 0 评论 -
Madoka and Childish Pranks(贪心)
显然第三种不能画,第一种可以画,第二种不用动。所以我们试着每次只涂两个,从后面涂到前面,其实发现,只要第一个不是黑色,全部都能涂,只不过是用最多次数来涂,遍历所需数组,遇到1就涂(前一格和这一格(两格)),如果在第一列,就涂这一格和上面一格(第一行第一列除外)。这题的意思有点难懂,大概题意是,原本有n ∗ m 的网格,然后每次操作只能按棋盘图案操作,就是只能画一个类似棋盘的图案,比如样例1,第一步,画了一个3 ∗ 3 的正方形,按照棋盘的规则(黑白相间,第一个为白),第二步也是画了个棋盘不过是2*2的。..转载 2022-08-12 14:49:40 · 121 阅读 · 0 评论 -
Don’t Really Like How The Story Ends(dfs搜索)
2 和 3 之间加一条边,3 和 4 之间需要加一条边,但是4 和 5之间不需要,因为4可以通过3回溯后搜索到5;给定n个点(1 ~ n),还有m条已经链接的边,问需要加多少条边可以形成一个dfs序(即按照dfs遍历的顺序)如果按顺序两个点没有直接连接,并且不能通过回溯到达,那么必须加一条边。== AC代码 : ==所以条件采用while。...原创 2022-08-10 12:24:02 · 209 阅读 · 0 评论 -
aaaaaaaaaaA heH heH nuN
题意:规定一个字符串芳香的前缀是nunhehheh,后缀是数量个的a;给定一个n ,找出有n个芳香子序列的字符串。思路:nunhehheh + a * x,有2^x - 1个有效子序列nunhehhe hhhha ,有p个h,则有p个有效子序列那么在最后一个a前面加一个h就可以构成2 ^ x个有效子串例如 haha == 4 haaha == 8直接对应到2进制,所以我们直接枚举有多少个二进制位有1,然后在最前面那个a后面加h和对应二进制位上加h(即a与a之间的空位)即可构造AC代码:...原创 2022-07-14 14:58:31 · 499 阅读 · 0 评论