CodeForces
qq_38232157
这个作者很懒,什么都没留下…
展开
-
codeforce CF432D: Prefixes and Suffixes(扩展KMP)
扩展KMP原创 2022-10-26 00:53:17 · 225 阅读 · 0 评论 -
CodeForces-1141D Colored Boots(stl, 水题)
stl, 水题题目意思:两条字符串,长度都是n。 现在把两个相同的字符配对在一起,其中 ‘?’ 可以配对任意字符。问最多可以配对多少对字符对,要求写出任意 一组配对方式。本题要点:1、用 vector 来存每一个字符在 字符串出现的下标。2、用 vector<pair<int, int> > ans; 来存每一组配对。3、配对策略:先把完全配对的处理了;再处理第1 条字符串的 ‘?’ 和第 2 条字符串剩下的非 ‘?’ 字符, 同理处理第 1条字符串的 ‘?‘和原创 2020-09-11 20:22:17 · 77 阅读 · 0 评论 -
CodeForces-1228B Filling the Grid (快速幂,水题)
快速幂,水题题目意思:有个矩阵, row行, col 列。对于每一行, r[i] 表示第i行,从最开始的位置连续 r[i] 个格子,全部涂黑色。注意,隐含的意思就是, 第i行的第 r[i] + 1 个格子是白色。而数组 c[i] 表示的意思大致相同。本题要点:1、矩阵中,用1 表示黑色,0表示白色, -1 表示 可填白色和黑色。 题目问,有多少种涂色方法,就是问有多少个格子可以填 -1 , 假设有 p 个 -1, 答案就是 2^p2、套用快速幂模板,水题。#include <cstd原创 2020-09-11 18:52:37 · 88 阅读 · 0 评论 -
CodeForces-1285D Dr. Evil Underscores(字典树,dfs)
字典树,dfs题目意思:有n个数, 求一个数x ,使得 max{a[i] ^ x}(1 <= i <= n) 最小。0 ^ 0 == 0, 1 ^ 1 == 0, 0 ^ 1 == 1, 也是是相同的 异或为0, 不同的异或为1;本题要点:1、字典树处理 数的异或问题:用这 n 个数建立一颗 trie, 注意到 a[i] <= 2^30 - 1, 因此每一个数都可以看做是 30 位 的 01 串。怎样寻找到 x 呢。 一般的查询,是从树的根部开始扫描, 到了某个节点 fa,原创 2020-09-10 17:40:56 · 102 阅读 · 0 评论 -
Codeforces 622C Not Equal on a Segment (stl, 二分查找)
stl, 二分查找题目意思:有一个整数数组 a(元素最多 n <= 2e5), 有 m 次查询 ,每次给出三个数 L, R, p;要求在 坐标[L, R] 范围内,找到一个下标 k ,使得 a[k] != p 。每次输出k, 如果找不到,就输出 -1;本题要点:1、 vector v[MaxN];用 vector 数组a的每一个数 a[i] 在数组a中的下标。 v[a[i]].push_back(i);然后 在 v[a[i]] 里面,存的所有下标是从小到大排序的。 有序后就可以二分了。原创 2020-09-07 17:00:30 · 85 阅读 · 0 评论 -
CodeForces-1287B Hyperset(stl)
stl题目意思:有 n个字符串,每个字符串长度 为k。 每个字符 只有三种形式 ‘E’, ‘T’, ‘S’。现在问, 从 n 个字符串,选出三个, 使得这三个字符串满足以下条件:相同位置的字符,要么相等,要么互补相等。比如这三个字符串,“SETT”, “TEST”, “EEET”, 每个字符串都有4位。第 0 位, 互补相等第 1 位, 相等, 都是 ‘E’第 2 位, 互补相等第 3 位, 相等, 都是 ‘T’本题要点:1、首先,从 n个字符串选出两个 字符串,第三个字符串是唯一确定原创 2020-09-07 15:03:09 · 134 阅读 · 0 评论 -
CodeForces 1263A Sweet Problem(水题)
水题题目意思:有三个堆,每个堆都有若干相同颜色的笔,堆与堆之间颜色各不相同。现在要求每次从两个堆,各拿一支笔。问,怎样操作,使得拿的笔最多? 输出操作次数(拿的笔的总数的一半)本题要点:1、 三堆, 从大到小排列, x >= y >= z. 如果 x >= y + z, 说明, 最多的一堆x 是拿不完的。当 没有同时从 y 和 z 堆拿笔, 操作次数是最多的。最多 有 y + z 次。2、当 x < y + z;此时,做好分配策略。从 y 和 z 中,各自拿一些笔 和原创 2020-09-07 12:53:18 · 128 阅读 · 0 评论 -
CodeForces 1293C NEKO‘s Maze Game(思维题)
模拟题题目意思:给出一个 2 * n (n <= 1e5) 矩阵,矩阵的每一个格子都可以放石头,或者取石头。现在要求从点 (1, 1) 走到点 (2, n), 问是否有路可走。 题目给出了 q 次操作,每次是一个坐标(x, y),如果 (x, y) 上没有石头,就放石头; 如果 (x, y) 上有石头,就拿掉石头。本题要点:1、用 0 和 1 两个整数来表示 点(x, y) 是否有石头, vis[x][y] == 0, 没有; vis[x][y] == 1,有石头。0 和 1 之间的切原创 2020-09-07 12:37:07 · 116 阅读 · 0 评论 -
CodeForces-123A Prime Permutation(并查集,贪心)
并查集,贪心题目意思:给出一个字符串 s, 长度 n <= 1000, 改变字符串的各个字母的顺序,使得:下标是素数的位置(假设为p), s[p] = s[p * i], 1 <= i <= n / p本题要点:1、并查集:把素数位p,满足条件 s[p] = s[p * i], 1 <= i <= n / p 的所有下标全部放到一个集合里面。用一个结构体 来记录,然后按 size 从大到小排序.struct node2 // p[i] 表示以i为父节点信息{原创 2020-08-20 12:51:14 · 108 阅读 · 0 评论 -
CodeForces 1137B Camp Schedule(KMP的next数组)
KMP的next数组, 参考:https://blog.csdn.net/weixin_42102584/article/details/88360361题目意思:给出两个0-1字符串s和t,问如何重排s可以使得产生的新字符串中包括最多的连续子串t,输出重排结果。本题要点:1、对字符串 t 计算 next 数组, next[lent] 就是字符串t的最长的前后缀, 假如 next[lent] == idx,坐标范围 [1, idx] 这部分字符串假设是 x坐标范围 [idx + 1, lent]原创 2020-08-05 20:54:07 · 147 阅读 · 0 评论