自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 收藏
  • 关注

原创 23杭电(一)-E-Cyclically Isomorphic(字符串最小表示法)

【代码】23杭电(一)-E-Cyclically Isomorphic(字符串最小表示法)

2023-07-19 16:13:01 624

原创 2023牛客多校-H-Matches(贪心+思维)

【代码】2023牛客多校-H-Matches(贪心+思维)

2023-07-18 18:35:34 387

原创 CF1731 C. Even Subarrays(思维+前缀异或和)

【代码】CF1731 C. Even Subarrays(思维+前缀异或和)

2023-07-13 21:32:50 457

原创 cf1811D - Umka and a Long Flight(思维)

【代码】cf1811D - Umka and a Long Flight(思维)

2023-07-10 15:47:31 301

原创 E - Tree Generator™(线段树+思维)

【代码】E - Tree Generator™(线段树+思维)

2023-05-11 00:43:08 84 1

原创 小d的博弈(博弈论+sg)

【代码】小d的博弈(博弈论+sg)

2023-05-09 22:04:40 123

原创 7-14 愿天下的有情人终成眷属(最短路+反向图)

【代码】7-14 愿天下的有情人终成眷属(最短路+反向图)

2023-04-21 13:59:37 66

原创 7-1 表达式转换

操作符满足当前符号优先级>栈顶优先级 || 栈空时入栈, 若"("直接入栈且优先级最低, ")"则一直输出栈类元素直到"(" 并弹出括号。中缀转后缀, 通过符号栈按以下规则来即可。注意下小数和负数即可。

2023-04-02 14:31:01 206

原创 7-5 特殊堆栈(二分+树状数组/线段树)

3. 最终优化, 考虑二分, 我们要找的是一个数, 这个数和前面所以数的出现次数之和, 来判断这个和是不是到了中位, 这个过程是可以二分的, 但问题是如何快速的获取前面所有数出现的次数之和, 我一开始想的是树状数组, 但是脑子抽了不太会写, 选择用线段树的解法, 线段树维护区间数字出现的次数和, 每次入栈就对应区间+1反之-1, 查询中值时, 就通过查询线段树来快速的获取前面所有数出现的次数和, 时间复杂度O(n^logn^logn)很明显, 这样的做法铁T, 但是能骗到17分, 还可以。

2023-03-28 22:12:11 255 2

原创 2023天梯分组赛 L2-4(最短路)

【代码】2023天梯分组赛 L2-4(最短路)

2023-03-28 20:26:40 162

原创 cf1768 E. Partial Sorting(数学 + 容斥原理)

【代码】cf1768 E. Partial Sorting(数学 + 容斥原理)

2023-02-23 18:53:07 72

原创 cf1783 D. Different Arrays(dp)

【代码】cf1783 D. Different Arrays(dp)

2023-02-23 17:41:13 161

原创 cf1782 E - Rectangle Shrinking(贪心)

【代码】cf1782 E - Rectangle Shrinking(思维)

2023-02-22 15:15:56 75

原创 cf1451 E2. Bitwise Queries (Hard Version)(位运算+思维)

的运算优先级小于+!

2023-02-21 18:33:22 65

原创 cf1777 C. Quiz Master(思维+双指针)

【代码】cf1777 C. Quiz Master(思维+双指针)

2023-02-20 13:02:23 367

原创 cf1777 D. Score of a Tree(思维)

【代码】cf1777 D. Score of a Tree(思维)

2023-02-20 13:00:52 148

原创 cf1114 E. Arithmetic Progression(交互+随机数)

【代码】cf1114 E. Arithmetic Progression(交互+随机数)

2023-02-20 10:43:51 75

原创 cf1792 D. Fixed Prefix Permutations(思维+Trie树)

要求1~n的每个排列 ai 的最大贡献, 对于ai * aj 即将 aj 以 ai的顺序排列, 我们求出aj的位置排列如: 2 4 1 3, p[2, 4, 1, 3] = 3 1 4 2 , 对于p 我们发现, 若存在一个排列aj = [3, 1, 4, 2]那么aj对于ai的贡献即为4, 否则贡献即为aj 与 p 的最长公共前缀, 那么我们可以把每个ai的位置排列求出来, 然后建立trie树, 对于当前排列ai的最大贡献即为ai在树上的最大深度。

2023-02-19 14:40:12 243

原创 cf1780 D.Bit Guessing Game(交互+位运算)

【代码】cf1780 D.Bit Guessing Game(交互+位运算)

2023-02-18 20:13:08 130

原创 cf1167 B - Lost Numbers(交互题+dfs)

【代码】cf1167 B - Lost Numbers(交互题+dfs)

2023-02-18 19:48:58 75

原创 cf1787 D. Game on Axis(思维+建图)

【代码】cf1787 D. Game on Axis(思维+建图)

2023-02-17 14:30:23 145

原创 cf1787 E. The Harmonization of XOR(异或)

主要思路为 通过异或交换律, i^j = x, j = i^x, 来找成立得二元组{i, j}

2023-02-17 13:07:17 174 2

原创 cf1778 C. Flexible String(二进制枚举)

【代码】cf1778 C. Flexible String(二进制枚举)

2023-02-16 20:29:07 141

原创 cf1778 D. Flexible String Revisit(概率dp+数学)

【代码】cf1778 D. Flexible String Revisit(概率dp+数学)

2023-02-16 18:23:16 76

原创 cf1786D. Letter Exchange(贪心)

具体思路就是贪心去凑, 对于iin, 需要出一个i, 要一个w, 即(i, w), 若有要一个i, 出一个w就能形成互补, 即(i, w) (w, i) 互补, 如果没有互补这种情况, 则要中转一次, 即 (i, w) (w, n) (n, i) 这种, 而对于iii, 就是需要转两次, (i, w)一次, (i, n)一次, 转完一次后都和第一种情况符合, 据题意牌面固定, 只可能出现这两种情况, 模拟即可。

2023-02-15 14:26:25 117 1

原创 cf1721 D. Maximum AND (位运算 + 贪心)

给定数组a, b, 定义数组c为, a xor b, 即ci = ai xor bi, 定义f(a,b) 为数组c的AND和, 即f(a, b) = c1&c2&c3&...&cn, 可以对数组b随意排序, 求f(a, b)的最大值。要使f(a, b)最大, 则数组c的AND和最大, 所以看每一位, 只有当c中该位都为1, 才会对答案有贡献....

2022-08-28 10:34:40 227

原创 22牛客多校1 补题

22牛客多校补题1

2022-08-19 15:05:17 430

原创 22牛客多校3 A.Ancestor(LCA + 枚举)

lca具有可加性, 如 a b 的lca 为 anc, 则 a b c 的lca 为 anc 与 c的 lca, 对于每个关键点, 我们可以处理出该关键点之前和之后的所有关键点的lca, 如关键点key[i] 用。所有关键点的 lca, 那么对于去掉点key[i] (即不看该点, 不是从树中去点)后,, 即key[i] 的前缀lca 和 后缀lca 的 lca, 求出lca后比较权值即可。剩余关键点的lca 即为 lca(lcap[i-1], lcan[i+1])表示关键点key[i]点(包含该点)...

2022-08-09 17:33:52 400

原创 22牛客多校1 J.Serval and Essay (启发式合并)

显然暴力是会超时的,因为会遍历到所有重边来进行合并,这里可以想到用启发式合并来进行操作,对于两个可以连接的集合,我们只遍历出边数小的那个集合,将它与出边大的合并,来优化时间复杂度,最坏情况下m条边,分为m/2,m/2两个集合,每次只遍历一个,不断向下合并,复杂度为O(m/2*logm),再加上需要用到set操作,总时间复杂度为O(m/2*logm*logm),是可以做的。...

2022-07-31 16:14:49 187

原创 22牛客多校1 C.Grab the Seat (几何 + 暴力)

一般情况,可看作从(0,1),(0,m)到该点的两条射线,射线后的范围即为挡住范围,整个区域的左边界可以看做为一个折线图,只需计算折线图每行的横坐标即可,我们可以分开计算。二维平面,在y轴上有一1到m的屏幕,平面类,有以(1,1)到(n,m)的矩阵,矩阵中有k位座位已经就坐,q次询问,每次修改一个人的坐标,求到屏幕视线不被人挡住的座位。同理从(0,m)一样,反转一下就行,最终答案其实就是二者并集,即每次更新最小值即可。...

2022-07-31 01:17:43 117

原创 22牛客多校1 I. Chiitoitsu (概率dp)

传送门大致题意: 初始手牌13张, 相同牌最多两张, 共34种牌, 每种牌4张, 每次从牌堆摸牌, 要求糊七对, 也就是摸到七对相同牌, 求最优策略下达到七对的轮数思路: 经典概率dp, 最优策略即上帝视角, 一定不会丢掉已有的单牌(即假定我一定摸到已有单排凑对)考虑状态dp[i][j], 表示手上有i张单牌, 牌堆中还有j张牌时到达最终状态的轮数, dp[i][j] = p1*dp[i-2][j-1] + p2*dp[i][j-1] + 1p1表示从牌堆摸一张牌刚好与手牌中的一张组成对子, 手牌-2 牌堆

2022-07-30 17:37:04 185

原创 E. Split Into Two Sets(种类并查集+染色法判二分图)

题目链接: 传送门 题目大意: 有n组多米诺骨牌, 每组牌上有两个数字a,b,(1

2022-07-14 12:06:49 854

原创 C. Meximum Array(贪心 + 数学mex)

题目大意 : 给定一个长度为n的数组, 每次可以取前k个数求一个mex放入b并删除这k个数, 要求使b的字典序最大的操作方法, 输出b数组思路 : 一道经典的运用mex的性质的题目,可以用一个数组来预处理以下后缀mex(因为每次操作的是前缀mex, 并不会对后缀mex产生影响), 由mex的性质可知, 第 i 位的后缀mex存的即为当前序列能取到的最大的mex, 要使b最大, 则取mex时应取得当前序列得最大mex, 即刚刚求得后缀mex, 所以做法就是跑一遍前缀mex, 当前缀mex取到当前得...

2022-05-22 16:06:11 350

原创 CF1680 C. Binary String(贪心)

大致题意 : 给定一个01串, 可对进行一些操作: 从字符串前后删除一些字串(可以为0), 操作的花费为, 删除的字符1的数量与剩余的字符0数量的最大值思路 : 本题有多种做法(最多的为二分和双指针), 这里用一种贪心的做法, 做以下定义:S1表示字符串中 '1' 的数量; lent表示字串t的长度 t1表示任一字串中'1'的数量; t0表示任一字串中'0'的数量.对于操作后的字串t, 答案即为max(t0, S1-t1) = max(t0+t1, S1) - t1 = max(lent,.

2022-05-15 00:35:26 943

原创 G. 积木画(dp + 滚动数组)

大致题意 : 给定2*N的画布, 以及两种积木, 问填满画布的方法有多少种思路: 数据范围很大, 时间复杂度要求O(n), 可以想到用线性dp来解决考虑状态转移方程:状态表示: d[i][j]表示前i-1列都填满, 填满第i列时状态为j的种类数按j分为以下三种状态转移方程: 即看填满上一列的方法第一种 : dp[i][0] = dp[i-1][0](由dp[i-1][0]加一个竖条转移过来)+ dp[i-1][2](由dp[i-1][2]什么都不加转移) ...

2022-05-13 15:11:26 324

原创 D. Very Suspicious(数学 + 二分查找)

大致题意 : 对于一个无限的六边形网格进行划线, 要求加的线必须平行六边形的边, 给出查询n问要构造n个小三角型最少要划几条线思路 : 对于n<=6要划的三条线是固定的画法可以特判一下, 之后要加线无非就三种加法, 如样例三条线, 因为要是构造n个小三角型所画的线最小, 所以需要贪心的去画线, 不难发现, 每次画线时只要与上次画线的斜率不一样即1 2 3 1 2 3 1 2 3...这样循环画线即可构造出最多的小三角形, 以此我们可以对n<=1e9的数据进行预处理, 之后用二分查找每...

2022-05-10 17:53:44 241

原创 C. Where is the Pizza?(并查集 + 思维)

大致题意 : 有两个长度为n的排列a,b, 以及一个排列c, 排列c满足c[i] = a[i] or b[i];c[i]中有一些固定元素;问排列c有几种构造方法, 答案对1e9+7取模思路 : 观察样例, 不难发现对于排列a,b有一些关联集合, 这里取样例1进行分析a: 1 2 3 4 5 6 7b: 2 3 1 7 6 5 4c: 2 0 1 0 0 0 0可以发现对于集合 {1,2,3}, 当集合中一个元素在a或b中被选取时其他两个元素也会固定如 第一个位置c...

2022-05-10 16:15:07 388 1

原创 CF1675 F.Vlad and Unfinished Business(dfs + 思维)

大致题意 : 给定起点x, 终点y, k个任务点a1...ak, 以及一棵n个点, n-1条边的数, 问经过k个任务点, x->y的最短路思路 : 对 x->y(经过k)的路径(即答案路径) 中所有点进行染色(标记), 表示这些点一定会经过, 答案即为2*(cnt-1)-d[y];因为除了x->y的最短路这条路径的边外,其他的边最少会经过两次(x到任务点后还会经过此边返回去找其他任务点, 注意:只针对不在x->y最短路上的边),由此得出需经过的边数为2*(cnt-1)...

2022-05-09 21:17:16 410

原创 CF1674 F. Desktop Rearrangement(二维转一维, 模拟)

大致题意 : 给定二维字符数组, '*'代表图标, '.'代表空白, 按照电脑桌面默认的图标排序方式进行排序(即先排第一列, 再排第二列, 以此类推), 每次操作可以任意互换两个数组元素位置, 给定q次查询, 每次查询为一个下标, 并会将该下标取反(图标变空白, 空白变图标), 问每次查询的最小操作次数思路 : 将二维数组以列为一维进行二维转一维, 对一维字符串进行模拟分类讨论即可代码及其注释 :#include <iostream>#include <cstring&g.

2022-05-09 12:36:42 260

原创 AcWing 1135. 新年好(堆优化Dijkstra + dfs)

传送门大致题意 : 有n个站点, 和m条双向边, 起点为1, 有5个站点a,b,c,d,e, 问怎么走能是走完5个站点的时间最短思路 : 暴力做法为, 对起点和站点排序, dfs一遍所有顺序, 对每一种顺序求一遍两点间的最短路, 在求和取最小, 时间复杂度为5! * O(m)(spfa的复杂度), 加上spfa的常数k, 大概率会被卡掉, 换一种思路, 我们可以先预处理一下点对间的最短路, 再进行dfs, 这样的化话时间复杂度会有乘算优化为加算, 即O(m) + 5!, 这样就能过(但是数据加强后会

2022-05-08 15:04:04 129

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除