自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2024ICPC江西省赛 个人补题 ACDGHJKL

思考到这个需要优化的原因,就是因为1e5的时间内有很多重复的情况,即:不同时间,出口的开放情况相同,我们考虑找出口开放时刻的“边界点”,即区间,在这个区间的内部,一定是相同的情况,我们可以归为一类,每个出口只有一个l和r,因此时间复杂度为 2knlogn <= 30 nlogn < 2*4e7可以接受。对于2,显然答案是n,对于1,我们观察到没有说不能让数字重复,尝试让一个人说的是假话,设另外的人sum = temp ,让这个人为 s - temp,这样答案是 n - 1,提交,发现答案正确。

2025-05-18 01:48:57 525

原创 2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK

对于连续的 k 个数,max=A[i+k−1]−A[i]。假设有k−1 个相邻差值,存在差分数组 diff,使得diff[j]=A[j+1]−A[j]。连续区间 [i, i+k-1] 中,相邻差值的最小值就是min=min(diff[i],diff[i+1],...,diff[i+k−2])。同时,相邻差值的最小值如果跳着选,差值可能会变大,而连续的差值是最稳定的。思路:我们发现0.5会进位,而距离0.5无穷左边就会被舍去,因此最小的方式是分出来的尽量距离0.5差一点点,最多的就是0.5。

2025-05-16 00:06:08 455

原创 2024CCPC山东邀请赛暨山东省省赛 个人补题ACDFHIJK

同样地,把所有处于同一列,且可以互相攻击的一对城堡,看成二分图右边的点。有一张完全图:顶点有颜色,一共有 n 种颜色,每种颜色 a[i] 个点,两点之间边权只与颜色对 (u,v) 决定,权重 b[u][v]。思路:本题为继D后的超级建模题,有众多做法,但大体可归类为构图 + 最小顶点覆盖转最大独立集或二分图最大匹配,这里按照官方题解的二分图最大匹配思路解决。思路:注意到如果每次买的件数相同,那么每次交易的结果也是相同的,而每次交易之后金币不断增加,因此可以归类合并处理。这些顶点是相同的,只是颜色不同。

2025-05-15 00:37:19 705

原创 2024ICPC武汉邀请赛 个人补题BEFIKM

你可以:从任意 a[i] 向任意 a[j] 移动一个 x(0 ≤ x ≤ 10^9),使得 a[i] -= x, a[j] += x。不能新增总和,只能重新分配。拆出来的数,每个位上必须满足 mask 的限制 —— 即不能有 mask 中不允许为 1 的位被强制成 1。思路:观察到题目所给条件,行单调不减,即a[i][j] >= a[i-1][j],列单调不减,即a[i][j] >= a[i][j-1]题意:在一个满足单调性约束的 n×n 矩阵中,通过最多 50,000 次查询,找到第 k 大的值。

2025-05-13 00:22:40 240

原创 2024 ICPC湖北邀请赛暨湖北省赛 个人补题ABEFGHJL

的值是固定的,我们扩大b,减小a可以达到使a *b更大的效果。比如 4 * sqrt ( 1)和1 * sqrt(16) 都是4。思路:可以发现最后一定和平均数有关,考虑如何求分母,使用逆模运算即可。题目难度(过题):E A J / B L H G F K 睡醒补。所以我们直接让a = 1,b就是原式。榜单含打星队仅供参考。

2025-05-06 20:13:42 301

原创 2019ICPC陕西省赛暨陕西邀请赛 个人补题 BCDEF HIJKL

根据欧拉路径的定义:一个图存在欧拉路径的充要条件是,图忽略方向后联通。当k < x 或 z时 ,根本没法到x , z这两个时间,只会变成x % k和 z % k。思路:注意到答案是连乘,只要有0那全部为0,而 > 10的区间一定有0,10之内的模拟即可。我们注意到一选L一定是一个连续的区间,无论有多少个1,后面有多少个0,后面都要直接全选。我们把每个格子变成一个节点,然后根据箭头建一条从当前格子指向另外一个格子的边。观察到这个E要求求的是一个最大值的最小值,考虑二分的可行性。银牌33 —— 4 391。

2025-05-03 03:47:26 308

原创 Codeforces Round 1017 (Div. 4)题解ABCDEFGH

你有一个整数数组 a,每个查询给出 k, l, r:初始值是 k遍历从 a[l] 到 a[r] 的元素,对 k 不断执行找到下一个位置 i,使得 a[i] 是 k 的约数在 i 到当前位置的范围,贡献为 区间长度 × 当前 k然后令 k /= a[i],重复这个过程最后,剩余未处理的区间长度 × 最终 k,加到结果中目标是输出所有查询的结果。的约数,然后建立数值到下标的映射,目的是为了查询某个值为x的数在数组里面的所有出现位置,方便通过二分找下一个满足条件的位置。我们先预处理所有数的因数用于后续快速查找。

2025-05-02 07:40:00 342

原创 2024中国大学生程序设计竞赛女生专场 2024 CCPC女生专场 个人补题 ACH ML EGFK

根据树的性质,树的最长路径有n-1条边,因此最坏情况不会超过n-1,最好情况可能是0,所以可以在0~n-1之间猜一个中间值L,然后验证是否可以完成覆盖,如果可以则保留找最小的,否则舍去。例如,对于 01 字符串 `010011101111101`,小 A 会看到四个仅由 `1` 组成的子串:`1`、`111`、`11111` 和 `1`。现在,给你一个 01 字符串 `s`,小 A 希望你能将 `s` 中的一些 `1` 改为 `0`(或保持不变),以**最大化**这个 01 字符串的魅力值。

2025-03-25 11:42:21 1125

原创 OMRON Corporation Programming Contest 2025 (AtCoder Beginner Contest 397)题解ABCDE

不过如果恰好有两个候选链,并且它们之和正好等于 K–1,则 v 可以用自己将这两个链“对接”,凑成一条完整的路径(这时 v 就被“消耗”,不向上传递候选链)。对于 (x, y) 与 x^3 - y^3 = N,我们有 x^3 - y^3 = (x - y) · (x^2 + xy + y^2) = d · (x^2 + xy + y^2)。, K-1,都有一条边连接顶点 P(i,j) 和 P(i,j+1)。

2025-03-15 23:57:05 683

原创 AtCoder Beginner Contest 396题解ABCDE

将每个约束视作等式Au​⊕Av​=z,注意到如果我们固定某个连通块内一个顶点的值(例如令它的“电势” d=0),那么对任意顶点 v 都有Av=t⊕dv。第 i 个黑球( 1≤i≤N )的值是 Bi​ ,第 j 个白球( 1≤j≤M )的值是 Wj。在所有这样的选择中,求所选球的数值之和的最大值。对于某一位 j(权值 2^j),设连通块中有 cnt1个顶点在该位为 1,其余 cnt0个顶点在该位为 0。在从顶点 1 到顶点 N 的所有简单路径(不经过同一顶点多次的路径)中,求路径上边的标签的最小 XOR。

2025-03-09 01:02:45 813

原创 Codeforces Round 835 (Div. 4)题解ABCDEFG

思路:注意到数据范围是2e5思考如何优化计算方式,考虑到逆序对的定义是 i < j and ai > aj,而且每次只修改一个字符,思考到可以计算一下在当前位置的逆序对数量,对0 / 1分情况讨论,对另一半取反然后取最大值即可,逆序对数量可以用类似前缀和的方式快速计算。现在对于任意一个单词,定义:它需要一个最小的大小为 x 的字母表,当且仅当这个单词只用到了英文字母中的前 x 个字符。题意:你有 t 组数据,每组有两两不同的三个数 a,b,c,现在需要你求出他们的中位数。思路:找最大的char,模拟即可。

2025-03-05 19:11:29 363

原创 AtCoder Beginner Contest 395 题解ABCDEF

思路:由题意有,对于一个ai,找下一个理他最近的ai,注意到N < 1e5所以双重遍历不理想,思考把相同的元素融入到一个vector里面,每次看vector里面两个相邻的元素即可,转化到On左右。但是这样显然有一个问题,在对于2操作进行模拟的时候,要把两个巢穴的鸽子全部清空,然后互相copy,当N过大时,两个互相copy的过程能达到On^2,显然超时。考虑一下优化方式,不涉及的巢穴中去鸽子,2操作的实质就是把两个巢穴的标签编号改变一下,所以开一个数组记录一下当前巢穴的“真”编号,然后模拟即可。

2025-03-01 22:00:17 618

原创 Codeforces Round 827 (Div. 4)题解ABCDEFG

题意:给定一个长为 n (2≤n≤2×105) 的序列 a (1≤ai​≤1000),求 gcd(ai​,aj​)=1max​{i+j}。想要确定 bi​,只需要枚举还没有选择的 aj​,使得 bi​=bi−1​oraj​ 最大 即可。求每次操作之后,是否可以重新排列 s 和 t 的字符,使 s 字典序比 t 小,如果可以,则输出“YES”,否则输出“NO”。q 次询问,对于每一个 ki​ (1≤i≤q),若 Timur 一步能提高 ki​ 的高度,求出他能到达的最高高度。

2025-02-27 19:32:30 605

原创 Codeforces Round 817 (Div. 4)题解ABCDEFG

确定它是否仅包含L形,其中L形不能接触边或角,也就是说网格中的每个阴影单元正好是一个L形的一部分,并且没有两个L形通过边或角相邻。对于每次询问,输入四个整数 hs​,ws​,hb​,wb​,输出满足 hi​∈(hs​,hb​) ,wi​∈(ws​,wb​) 的 ∑hi​⋅wi​。t 组数据,每组一个 n 表示字符串数量,之后三行每行 n 个长度为 3 的字符串,表示三个小朋友各自的字符串。如果一个字符串只有一个小朋友有,那他得三分。例如,上图中的最后两个网格不满足条件,因为两个L形分别通过角和边缘接触。

2025-02-26 00:40:10 659

原创 Codeforces Round 806 (Div. 4)题解ABCDEFG

题意:给出 n 个字符串 s1​,s2​⋯sn​ 每个字符串最多长 8,问对于每个 si​(1≤i≤n) ,是否存在两个字符串 sj​,sk​(1≤j,k≤n)(j 可能等于 k)使得 si​=sj​+sk​ ,即 si​ 可以由 sj​,sk​ 拼接得到。若存在,输出 1,否则输出 0。思路:我们发现对于矩阵旋转四次相同,即:每一位在操作以后形成的新位置上能保持原有的性质,只需要保证原来那个和他对应的即可,总共四个(除了中心以外最多四个),遍历一下然后看0多还是1多,把少的那个加入总操作次数即可。

2025-02-24 19:51:03 1109

原创 KAJIMA CORPORATION CONTEST 2025 (AtCoder Beginner Contest 394)题解 ABCDE

从一个状态 (u,v)(即从顶点 u 到顶点 v 的回文路径)出发,尝试通过在左端加一个边(x→u)和在右端加一个边(v→y),且这两条边的标签相同来扩展回文路径。初始化时,所有 dist[i][i]=0,即每个顶点到自身的路径为空字符串(回文路径,长度为 0)。我们的任务是,对于每一对顶点 i,j,找出从顶点 i 到顶点 j 的最短回文路径的长度,如果没有这样的路径,则返回 −1。根据题目定义,空字符串是回文路径,因此任何一个顶点到自身的路径(即 i→i/)默认是回文,长度为 0。我们维护一个距离矩阵。

2025-02-22 21:40:01 434

原创 2025牛客寒假算法基础集训营6 个人补题 ACIJKL

我们举一个例子说明该做法的思路,例如输入的数组 ppp 为 [1,3,2,4,5],查询分别为 [1,5,2]和 [2,5,4],我们发现 [1,5,2][1,5,2][1,5,2] 查询相当于在问: [1,5] 区间里有多少个小于等于 p2​ 的数字?这样询问 [1,5,2]其实是在对状态2的数组求 [1,5] 区间的和,使用树状数组可以做到;状态1:[1,0,0,0,0] 状态2:[1,0,1,0,0] 状态3:[1,1,1,0,0]状态4:[1,1,1,1,0]状态5:[1,1,1,1,1]

2025-02-22 02:46:49 464

原创 2025牛客寒假算法基础集训营5个人补题ABCEIJ

首先能够发现每次换位可以修改两个数,而反置只能修改一个数,所以很明显,如果2 * value_1 <= value_2,那么反置的收益大于互换,反之反置小于互换。我们注意到1 ^ 1 = 0 1 ^ 0 = 1 0 ^ 1 = 1 0 ^ 0 = 0,所以反置任意一位就可以改变c的答案。思路:高中的时候学过,路程是时间和速度围成的关于x轴的面积,每一秒更新一下速度然后模拟即可,要注意速度 < 0 的情况。具体的模拟方式,可以记录一下几个1 和 0 的分配,然后和操作次数做比较,然后模拟即可。

2025-02-22 01:40:55 298

原创 2025牛客寒假算法基础集训营4个人补题BCDEIK

最终的目标是最小化替换次数,所以我们可以通过统计字符出现的次数,发现在拼接的时候,哪些位置的字符串不匹配,然后得出要替换的字符个数。根据回文字符串的定义,我们有s[i] = s[n - i -1] i>= 0 && i <= n / 2。思路:二位平面过对角线的最大值和,容斥原理记录方向前缀和即可。BC的区别在于n的范围,B的范围<10可以使用dfs解决。表示字符串中不包括第一个和最后一个字符的部分。思路:本题流程分三步,排列,替换,拼接。如果第一个字符与最后一个字符不相同,思路:对于字符串中的每个。

2025-02-21 05:20:58 345

原创 2025牛客寒假算法基础集训营3个人补题ACEFLM

思路:观察到题目所给的含义,由于此题限制m = 1,查询区间为全体区间,很容易想到字典树来存储,然后跑一遍搜索。思路:如果是奇数,取 n - 2个,然后1 - 1必赢,如果是偶数,取n - 3个,然后2 - 1必输。思路:一道物理题,观察到要求最大的最小值,二分即可,主要是中间的check有点复杂。思路:手动模拟一下发现都有解,左下->右下->然后向上走一层,一层一层轮回正好可以。思路:根据题意设不等式,借出来答案 >= n <= 2n存在。三个单词的前缀部分共享,因此无需多次输入now,只需要。

2025-02-21 04:50:17 247

原创 AtCoder Beginner Contest 390 题解ABCDEF

对于所有以 i 为右端点的子数组 [L, i],如果数字 a[i] 在子数组中是首次出现(即 L > pos[a[i]]), 那么该子数组的 f(L, i) 需要增加 1 次操作。新增子数组个数为 i - pos[a[i]]。1.如果 a[i]-1 在子数组中已经出现(且最后出现位置晚于上一次 a[i] 出现的位置),那么对于部分子数组,a[i] 与 a[i]-1 可以合并,减少了操作次数。对于每个单元格 (i,j)(1≤i≤H,1≤j≤W),如果有 a≤i≤b 和 c≤j≤d,则该单元格为黑色;

2025-02-20 04:06:52 737

原创 2025牛客寒假算法基础集训营2 个人补题ABCDFGJK

题意:牛可乐从古籍中得知,铸剑的温度越接近 n 度,剑的品质越好。此后,牛可乐每次添柴可以使得铸剑炉的温度提高到原来的m 倍,即温度变为 m^2,m^3,牛可乐想要知道,他最少需要添多少次柴(包括启动炉子时添的那一次),才能使得铸剑炉的温度最接近 n 度,这样他就能铸出一把品质最好的剑。1:m < n,即能构造出来第二个子序列,若n = m,若选取整个字符串作为连续子串,那么对应的“不连续子序列”只能选整个字符串,变成了一个连续块,不满足题目要求(不连续子序列必须由至少两段不相邻的非空子串构成)。

2025-02-20 02:08:32 733

原创 Codeforces Round 799 (Div. 4)题解ABCDEFGH

如果玩家猜对了,他们的钱就会翻一番,否则他们的钱会被折半。于是可以建立模型:给定数组 x[] 和 n,求出数组中的一个值 a 和区间 [l,r],使得在区间 [l,r] 中等于 a 的值和不等于 a 的值得个数的差最大。我们可以把剩下的记录成这样一个模型:可以采取类似前缀和的方式,然后双指针计算l ~ r之间的和,如果小则r ++大则l++,相等则实时更新答案。思路:题意比较抽象,可以理解为:每次操作可以删除两个数,求经过任意次操作后,剩下的序列没有相同的元素,求剩下的序列的最长的长度。

2025-02-19 17:09:19 877

原创 KEYENCE Programming Contest 2024(AtCoder Beginner Contest 374)题解ABCDE

思路:一个比较麻烦的模拟题,注意到需要枚举线段的先后顺序,然后每个线段有两种画的方式,时间复杂度很好,但是观察到最多只有六条线段,所以直接枚举+DFS即可。将每个部门分配到 A 组或 B 组,让每个组里面的所有人在同一时间午休,并确保 A 组和 B 组的午休时间不重叠,求同一时间午休的最大人数的最小值。可以任意购买这两种机器的任意数量,目标是让每个工序的总产能达到 u(即总产能为各工序产能的最小值),并且全局花费不超过预算 X 日元。对于工序 i,我们需要用两种机器的组合来达到至少 u 的产能。

2025-02-19 02:14:01 822

原创 Codeforces Round 790 (Div. 4)题解ABCDEFGH1H2

在一个操作中,你可以把任何一个单词的任何一个位置上的字母改成它相邻的字母,我们定义si​ 与 sj​ 的差异度为使 si​=sj​ 所需的操作次数,如 "best" 与 "cost" 差异度为 1+10+0+0=11。思路:二维平面过某点两条对角线上元素最大值,给过当前点的两条对角线计入元素,查询的时候直接查询两条对角线贡献再去重一次,即有O1的时间复杂度。思路:为了找到最小的次数,肯定希望先吃大的。有一个数组 ai​,代表从上面的终端中第 i 条线段,到下面的终端中第 ai​ 条线段,有一条连线。

2025-02-18 18:48:22 1012

原创 Codeforces Round 784 (Div. 4)题解 ABCDEFGH

题意:有 n 个糖果从左往右放在桌子上, Alice 和 Bob 吃糖果, Alice可以从左边开始吃, Bob可以从右边开始吃,他们需要连续吃,不能跳过任何一颗糖果,如果 Alice 吃掉了糖果, Bob 就不能吃,反之亦然,他们的目标是吃到等重的糖果。换句话说,改变数组如下:a1​=a1​+1,a3​=a3​+1,a5​=a5​+1,......题意:给定一个包含 n 元素的数组 a,输出至少出现三次的任何值,如果没有这样的值,则输出 -1。思路:考虑按位与运算的性质,先要尽量把高位统一修改为 1。

2025-02-18 02:43:17 1138

原创 AtCoder Beginner Contest 391 题解ABCDE

4:三个结点中 1 的个数为 2, a1​=1,将三个儿子中的其中一个 1 更改,于是 a2​ 的值即为对应的信息 1 为 1 的较小者。3:三个结点中 0 的个数为 2,a1​=0,将三个儿子中的其中一个 0 更改,于是 a2​ 的值为对应的信息 1 为 0 的较小者。2:三个结点中 1 的个数为 3, a1​=1,将三个儿子中两个 1 都修改,于是 a2​ 的值即为三个儿子中前两小的和。对于 i=1,2,…,3n−1,令 C_i​ 为 B_3i​、B_3i−1​、B_3i−2​ 中出现次数最多的字符。

2025-02-18 02:05:25 793

原创 Codeforces Round 640 (Div. 4)题解ABCDEFG

对于每个整数 n,你需要输出一个长度为 n 的全排列 p,输出要求对于所有满足 i∈[1,n) 的 i,有 ∣pi​−pi+1​∣∈[2,4],如果不存在,输出 −1,对于每一组数据,输出占一行。定义:一个正整数,如果它的形式像 d0000...00 一样,那么就称它为“圆数”,换句话说,“圆数”除了最高位其它的数位都是 0 ,特别地,正整数1∼9都是“圆数”举例来说,4000,1,9,800,90都是“圆数”,而110,707,222,1001不是“圆数”% 5 = 2有:1,3,7,5,2,4,6。

2025-02-17 20:26:31 359

原创 2025牛客寒假算法基础集训营1 个人补题(DABGMJH)

思路:根据树的性质,有N个点的树含有N-1条边,要形成题目要求的形状很明显是一个链表形式的,头尾节点度数为1,开一个map判断即可。因此,如果我们要依次“吸收”较小值进入操作区间,这个区间在原数组中的位置总是一个连续的区间,且会随着“吸收”更多数而不断扩张。题意:给你一个序列,每次可以选两个数使得一个+1一个-1,判断在经过任意次操作以后能不能使序列成为一个1~N的排列。但由于操作必须是连续的,一旦决定提升第 k 个较小值,操作区间就会从最小值所在的位置扩展到这个数的位置。对于还未操作的数,值保持不变;

2025-02-17 04:24:24 350

原创 AtCoder Beginner Contest 393 题解ABCDE

我们可以构造一个约数表,把1~N的所有约数先预处理出来,构造出一个递增的约数列表,然后统计每个约数在整个序列中出现的次数,然后对于每个a_i遍历所有约数,检查是否有至少K个元素在序列中能被x整除,选出一个包含a_i且所有数都能被x整除的子集。因此,对于每个 A_i,答案一定是它的某个约数,而这个约数必须同时是至少 K 个 A_j的因子。根据上述的中位数定理,可以证明,中间的为pos[mid],而连续的'1'区间的起始位置为pos[mid] - mid,终止位置为pos[mid] + mid。

2025-02-17 02:49:39 705

原创 Codeforces Round 1003 (Div. 4)题解ABC1C2DEFG

现在有一个有N个顶点的树与一个长度为N的数组A,顶点i上写有值A_i,其中A_i是一个范围在1~N的整数。所以此题无需XFS,对于 i,遍历i的所有邻居j,将A_j的出现次数+1,如果某个数x(下标为k)在i的邻居出现次数>=2,则可以构造路径 u -> v -> w,两边权值相同的情况,即u -> v在输入的时候即可读取。题意:给定N个数组,每个长度是M,可以任意排列这些数组,并将他们串联成一个长数组,定义一个数组的价值为其所有前缀和的总和,即对于长度为K的B数组,他的价值为。所以这是一个比较绕的贪心。

2025-02-11 00:47:39 958

原创 Japan Registry Services (JPRS) Programming Contest 2025#1 (AtCoder Beginner Contest 392)题解ABCDE

连通块可以用dsu来处理,改边采取这样一种思路:为了节省操作次数,先找那些无用边多的连通块,把这些连通块的无用边的数量由大到小排序,然后每次改一个即可。思路:一道脑筋急转弯,可以用IQ表示编号为i的人穿的围兜,QI表示编号为i的围兜被谁穿,这样就是围裙找人,然后人找人,然后人找围裙,三个数组即可解决。题意:有N个人,编号为i的人穿着编号为Q_i的围裙,盯着编号为P_i的人看,对于每个i,输出穿着i号围裙,所盯着的人的围裙编号。题意:给定M个值域在1~N之间的数,输出所有没出现过的数。

2025-02-09 10:02:43 338

原创 AtCoder Beginner Contest 373题解ABCDE

因为题目保证给出的数量关系没有冲突,所以如果我们知道了一个结点 a 的值,那么所有与它有数量关系的结点 b 的值都能被推出。可以采取这样的建边方式:由于X_v = X_u + w,所以有X_u = X_ v - w,在建图的时候建一条正边和负边,这样U->V和V->U的贡献就一样了。题意:有一个有向带权图,为每个顶点设定一个点权X_i,使得所有的由U指向V的权值为W的有向边,满足X_v - X_u = W。,想要输入字符,需要移到与该字符对应的按键坐标处并按下该键,移动到相邻的键移动距离为 1。

2025-02-08 12:41:57 273

原创 UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 372)题解 ABCDE

对于1中每个添加的点u , v,先找到他们的祖宗节点u_,v_,给u_,v_添加一条边,因为只需要查找联通的,把这两个点合并,为了节约转移次数,我们把节点小的所有点传递给节点大的,然后让节点小的的祖宗节点指向这两个节点中的大节点,这样合并完成。题意:给定一个序列a,对于每个a_i,设a_j为一个好元素对应a_I到a_j之间(不含左区间)的元素没有比a_j大的,求每个a_i有多少个a_j。提交会发现TLE,这是因为在节点很大转移的时候,转移次数会非常庞大,观察到k <= 10,让set只保留最大的十个即可。

2025-02-08 11:03:14 830

原创 AtCoder Beginner Contest 371 题解 ABCDE

考虑枚举右端点,记last_i为 i这个数最后出现的位置,每次在右边插入一个数,实时更新对前面最有左端点的影响,可以发现对1-last_i的位置没有影响,而对last_i + 1到当前位置有影响,统计答案并更新last_i即可。题意:给定两个无向图,图G为目标图,图H为操作图,你需要进行操作添加或删除边 (次数可以为0),使得两个图同构,每个添加或者删除耗费V(i,j)个价值,输出最小耗费价值。观察到数据范围N<=8,因此可以将图的所有可能的顶点排列,计算每种排列的转换成本,并找出最小的成本即可。

2025-02-08 05:31:44 250

空空如也

空空如也

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

TA关注的人

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