自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 String Bags

分组背包

2024-03-28 12:17:33 415

原创 Watering an Array

贪心 假如 a[] 全是0 那么答案是 day / 2现在考虑a[] 最开始那一次 该怎么做?枚举在哪一天清零即可 然后模拟b[]的操作 遍历a[]

2024-03-27 00:50:17 320

原创 [2023] 14届

蓝桥杯2023

2024-03-25 20:37:14 625

原创 Round Dance

dfs + 连通块

2024-03-25 00:36:48 316

原创 Square Pair

[数论] Ai​除去完全平方数因子

2024-03-16 17:18:39 365 1

原创 Bitwise Operation Wizard

位运算XOR

2024-03-14 22:10:42 394

原创 Greetings

和归并很像的求逆序对数量

2024-03-14 21:18:35 915

原创 Rudolf and Imbalance

f[x-2] f[x-1] 我给的最佳情况maxid-d[i] lower()查找到的值f[x] f[x+1]操作,是遍历 d ,用lower_bound查找 f 符合条件的 maxid - d[i]当然如果有多个最大值 直接输出最大值maxid。否则 就用操作后的最大值和次大值比较。我们找到了最大区间 l -> l+1。所以我们只需要找到 x 和 x-1。分两个部分 最大值 和次大值。最开始我找了左右一共三个的说。

2024-03-13 23:24:29 368

原创 Rudolf and k Bridges

切记看清题目: 最后需要把答案进行一个遍历求范围答案 不是sort最小值 因为是连续的桥!我们考虑一下每次其实只是需要前一个范围内的最小值 所以只需要用优先队列维护就行。当这个最小值对应的index适用就直接 f[i] = value + a[i]暴力dp不行 因为m为2e5 不可能来回遍历数组。优先队列里存 value 和 index。不适用的时候及时 pop。

2024-03-13 21:22:51 521

原创 Rudolf and the Ball Game

题目说了n*m <= 2e5 所以我们应该手写 清零。原因在每次都memset了1010*1010。暴力枚举每一个妆台的转换条件。

2024-03-12 22:19:15 701 1

原创 XOR Break — Solo Version

最多两步解决1. 一步:只要满足 ((n^m) < n) 即可一步,只要在第一个mi = 1的地方n也有1 无论如何都可以随便改n得到m2. 无解的情况:只要在第一个mi=1的时候n(i) -> n(最高位-1) 没有1 出现肯定无法解决3. 二步:类似于 10110 -> 0000110110->10101->00001只需要得到第一个mi = 1位置的1就行了。

2024-03-12 14:37:30 818 1

原创 Find a Mine

【代码】Find a Mine。

2024-03-09 23:57:34 370 1

原创 Exam in MAC [容斥]

比如 奇数有{1,3,5}那么其实是C(2,3) + 3 那就是 n(n-1)/2 + n = n(n+1)/2。x = 0 时,有c+1对 x = 1 时,有c对 ...... x = c 时,有1对。答案就是 odd(odd+1) / 2 + even(even+1) / 2。那就是x + y = ai 对 x = 0 而言 y有固定的一种取值ai。根据容斥定理 res = (1) - (2) - (3) + (4)以此类推 一共有 (c+2)(c+1)/2 对。

2024-03-09 21:09:00 471 1

原创 Copil Copac Draws Trees

前提:建树用的是 vector<PII> v[N] 代表着 u:{v1,i} {v2,i} {v3,i} i为编号,u->v是一条边。之后dfs它们,观察它们出现的次序,如果v比u先出现就得 f[v] = f[u] + 1 否则 f[v] = f[u]令f[u]代表u节点需要经历多少次这样。我们先假设把这颗树建完。最后输出最大的f就行。

2024-03-07 17:19:29 766 1

原创 anon的私货

第一个单独讨论 最后一个不需要单独讨论,直接默认a[n+1] = INF就行。从头到尾充分利用每一个数即可。

2024-03-03 17:15:35 356 1

原创 人生的起落

全部按 2 1 2 1 构造情况比较多:n = 1 只有 k = 0 才能满足n = 2 只有k = 0 才能满足(1) n >= 3的时候才可以有:k = 0 直接 1 1 1 …… s-n+1 构造(2) k!= 0:首先 n < 2 * k + 1 是不可能的n > 2 * k + 1 的时候直接 2 1 2 1……(n-(3 * k + 2)-(n-2*k+1-1))由于是恰好出现k次 所以在第2*k+2的数字一定把他搞大一点 后面全是1就行(这里怎么凑都行)

2024-03-03 01:06:55 347 1

原创 绝妙的平衡

小红希望你给每个节点的权值赋值为 1 或者 2,需要满足每个红色节点的子树节点权值之和为 3 的倍数。如果和取模后为1 比如只有两个点 (2+2)%3 = 1那么就让一个点变成1就好。总结 我们需要做的就是找到所有以红点为root的子树遍历它有至少两个节点就可以了。小红拿到了一棵有根树,其中有一些节点被染成了红色。树的根节点是 1 号节点。首先 全是红色不行 因为只能赋值 1 或 2。那么在以一个红点为root的树中是什么样子呢?所以只要满足至少有两个点 就可以满足情况。2呢 就让那两个点变成1。

2024-03-01 21:57:42 547 1

原创 2024牛客寒假算法基础集训营1

A->M (except K!)

2024-02-07 23:31:25 1105 1

原创 CF Div.2 Round 922

A->C (C:位运算)

2024-02-02 23:35:59 1065

原创 CF Div.4 Round 806

A->G

2024-02-01 23:59:23 890

原创 AtCoder Beginner Contest 337

A->E (E:位运算)

2024-01-31 21:09:53 1016

原创 CF Edu Div.2 Round 156

A->C

2024-01-30 21:34:55 497 1

空空如也

空空如也

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

TA关注的人

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