自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces Round 952 (Div. 4)

题意:有一个已知长宽高为x, y, z的盒子B在一个3D坐标系中,现在有一个体积为k的盒子s,通过自由定义一种s的长宽高,s在B中最多可能有多少种放置方法,s的角坐标一定为整数坐标;思路:暴力枚举S可能的长宽高即可,假设长宽高为a, b, c, 那么该种可能的答案为(x - a) * (y - b) * (z - c);题意:定义一个好的数组中,存在一个元素等于其余所有元素的和,现在寻找大小为n的数组a中有多少前缀数组是好的;回合才能再次使用该攻击;题意:在n*m的字符网格中,找到曼哈顿圆的圆心;

2024-06-12 17:19:50 868 3

原创 Codeforces Global Round 26

显然,对于取绝对值的操作,只有当前前缀为负的一个较大值时才会对最终结果产生正向影响,这样的位置只会出现一次,因为当出现多个负值时,只有对最后一个负值取绝对值才能最大化答案,而对于多个正值取绝对值无影响;由此我们可以得知,要想分解为两个大正整数,第一位一定为1,最后一位一定不为9,中间的数一定为5~9两两组合的个位+1;之前的数,无论正负,都不能随便取绝对值,否则可能会对当前最值位造成影响,只有当前前缀为正时,才可以取绝对值,后面的数,无论正负,是否取绝对值,对答案无影响,因为。的正整数相加一定会变成一个。

2024-06-11 19:55:21 1274 1

原创 牛客练习赛126(O(n)求取任意大小区间最值)

通过预处理出的l和r元素,x, x, x, l, x, i, x, x, x, r, x, x,对于元素i,前缀最小为l,则l及之前的序列不能包含,否则会覆盖i作为子序列的最小值,同理,r及其之后的也不能涵盖,则当。比如5 5 5 5 5,每个区间都能扩展5 5 5 5 5,覆盖的只有大小为5的区间长度,对于1 2 3 4的区间长度,通过取后缀最大即可覆盖;依次处理出上述序列后,我们需要进行后缀最值处理,因为长度为n的序列最大的最小值成立,则长度为n-1上同样成立, 从而覆盖未处理过的区间大小;

2024-06-07 21:44:22 1259 2

原创 HTML入门

注意,水文自用,//并非HTML注释语言,(<!–XXX->)才是。

2024-06-05 20:20:58 719 2

原创 Codeforces Round 950 (Div. 3)

题意:一个长度为n的整数序列的GCD序列定义为长度为n-1的gcd(ai, ai+1)序列,现在最多允许删除原序列的一个元素,使得新的gcd序列非递减;找到第一个不符合条件的gcd元素下标pos,可能的修改有删除pos -1,pos,pos + 1三种情况,枚举删除后的序列是否成立即可;思路:以每个行列为一个集合,以每个行列的最小元素为基准,先把行按照B排列,再把列按照B排列,最后验证操作后的A序列是否等于B序列即可;=d,现在已知序列a,d以及修改后的序列b,能否找出可能符合条件的序列c;

2024-06-05 10:30:08 953 1

原创 2018浙江省大学生程序设计竞赛

https://img-blog.csdnimg.cn/direct/00d4d6af998044228cf5a2443e99b96d.jpeg

2024-05-24 15:59:43 662 2

原创 2019 浙江省大学生程序设计竞赛

题意:给出字符串s和字符串t,通过一次操作翻转字符串s的任意连续子区间,可以得到字符串t,这样的操作有多少种;

2024-05-22 16:48:50 619 1

原创 The 13th Shandong ICPC Provincial Collegiate Programming Contest

一个队员可以背着另一个队员,i背j,若j的体重小于i,则对i的速度没有影响,否则i的速度vi - (wj - wi),若i的速度为负,则i无法背j;二分团队最小速度,在check函数里将速度慢的人按照重量从大到小存取,然后将符合条件的人按照速度+重量从大到小进行存取,遍历当前不符合条件的人是否都能有人能背并且整体速度符合最小速度。题意:在n*n的白色正方形矩阵中,有一个黑色方块,现在需要将除了黑色方块外的所有白色方块用L形覆盖;$ 找出一个匹配项,使匹配项中所有边的权重之和最大,并输出这个最大值。

2024-05-16 12:46:21 940 1

原创 2024 National Invitational of CCPC (Zhengzhou)(CCPC郑州邀请赛暨CCPC河南省赛)

2024CCPC郑州邀请赛暨CCPC河南省赛。

2024-05-14 13:23:44 1629 5

原创 Codeforces Round 944 (Div. 4)

思路:可以发现,二进制下第一和第二位00,01,10,11的任何排列组合都是符合条件的,所以可以交换的元素除了首位和次位的二进制一定是相等的,我们存储这样相同的元素进行排列,按顺序输出即可;有0到n个站点,汽车从站点0开始行驶,已知汽车到达其中k个站点的时间,这k个站点之间的平均速度是相同的,即a1点到a2点为一个。二分查询时第一个大于当前查询点的l点,当前点的时间即为l-1点的时间 + l-1到l之间经过点的和;题意:在n个非负整数的序列a中,可以任意交换两两异或值小于4的元素,求可能的最小字典序数组;

2024-05-11 15:37:52 1071 1

原创 The 2021 Sichuan Provincial Collegiate Programming Contest

现在给出无向图的m条边,有q名游客想去吃火锅,现在给出每个人当前的位置和他们能承受的最大辣度,计算每个游客和能接受的辣度餐厅之间的最短距离。辣度的范围很小,对同一种辣度的所有点进行BFS寻找靠近该辣度最近的其他店,用一个二维数组来记录某个辣度到某个点的最短距离。题意:明牌石头剪刀布,B先出牌,D后出牌,B胜总分-1, D胜总分+1,双方均以最优操作,最后得分为多少。思路:由于B先手,D总能找出最优操作,能胜则胜,否则打平,最后无牌下才会让B胜,模拟这个过程即可。种配料,最初每个游客幸福值为0,锅为空;

2024-05-08 12:57:02 760 1

原创 Codeforces Round 942 (Div. 2)

题意:给出两个长度为n的非递减排序的ab序列,通过向a序列中插入新元素,然后排序后删除最大元素,使得两个长度为n的排列中每一个。张,可以到商店买任意卡片,买一张需要1个金币,一共有k枚金币,买完牌重新排列后最多有多少连续子数组可以构成完整的1到n的排列。题意:找出两个元素a和b,范围分别为[1,n]和[1, m],找出符合(a+b)%(b*gcd(a,b)) == 0的对数。题意:n枚硬币围成一个圈,A和B轮流操作,每次选择一枚正面的硬币拿走,然后翻转相邻的两枚硬币,当一人无法操作时另一人胜利。

2024-05-01 18:20:41 930 1

原创 Codeforces Round 937 (Div. 4)

预处理出所有可能的五位数以内的01组成的十进制正整数,然后你会发现就32个数,暴力枚举四个数的组合乘积,然后用set或者map记录一下出现过的数,最后find查找即可。思路:枚举出当前字符串所有的因子,然后找当前因子长度连接出的子串是否符合题意,取最短即可,注意首尾子串都有可能nlogn;思路:样例给的过于优秀,顺着模拟即可,需要判断的是大于十二的以及00时刻,且注意12:00为PM;题意:给出字符串s,找出最短的可以首尾连接成为s的字符串k,最多允许一个位置字符不相同;

2024-03-29 09:02:16 728 1

原创 Codeforces Round 935 (Div. 3)

建一条道路来划分当前n个人,每个人有编号0和1,0代表想在左边住,1代表想在右边住,划分后左右两边单边满意的人数要比不满意的人多,找出划分道路的点,多个答案符合条件的情况下,道路尽可能靠中间。小明在n+1位置排队,他可以通过加钱来到达比自己当前位置靠前的i位置,到第i位置需要给第i个人ai硬币,给i到自己当前位置的人每人bi枚硬币,小明需要至少在第m人前面,最少需要花费多少硬币。题意:分帐篷,一个帐篷最多住仨人,a人社恐,一人一间,b人必须三人一间,c人随便,最少多少个帐篷,或者不能分。

2024-03-19 21:50:40 1135

原创 Codeforces Round 934 (Div. 2)

但对于二人来说,影响MEX大小的应该是序列中出现次数为1的元素,因为对于出现次数大于1的元素,即使B优先删除,A也能将其加入到MEX序列中来增大MEX数量;长度为2*n的数组a中,由两组1到n的元素组成,现在从下标1到n中选2 * k个元素组成新的序列l,从下标n+1到2n中选2 * k个元素组成新的序列r,令两组序列中所有元素的异或和相同。所以只需要判断序列中出现次数为1的元素,二人轮流将当前最小的元素删除/加入序列即可,对于大于1的元素则必然会选到序列中。首先,相同元素的异或和为零,x^x=0;

2024-03-17 10:20:40 610

原创 Educational Codeforces Round 163 (Rated for Div. 2)

走迷宫,二进制字符串迷宫,每次有两次移动,第一次可以任意选择上下左右进行移动,第二次则根据第一次移动到的位置的字符判断是向左还是向右移动,第二次移动一定要有且与字符指向相同;给出特殊字符的定义,在一组字符串中当前字符的相邻字符有且仅有一个与自身相同的字符,找出具有n个特殊字符的字符串。对于长度为n的序列a,可以对大于10的元素进行拆分,然后按原顺序插入序列中,是否可能通过这种操作使得序列非递减。找到最靠后的一个不符合条件的元素,只有拆分操作有可能使得序列非递减,其之前的元素若大于10均需要拆分操作;

2024-03-16 10:46:11 471

原创 Codeforces Round 933 (Div. 3)

题意:n*m的河需要建造连续的k行桥,每行桥要跨越m列,首尾建造桥墩,中间需要也需要建造桥墩,桥墩间的距离要<=d+1,桥墩建造的成本和当前河的深度挂钩, 成本最低为多少。题意:n个人围城一圈扔球,现在从x人开始,已知m轮,每轮扔的距离已知,但方向可能知道可能不知道,不知道的话可能是顺时针也可能是逆时针,m轮后球可能在哪几个人手里。题意:一组长度为n的非负整数序列,每次操作可以选择下标为i的元素-2,同时(i - 1)的元素-1,(i + 1)的元素-1,是否可能使得序列的元素全部为0。

2024-03-12 11:27:04 603 1

原创 Codeforces Round 931 (Div. 2)

特殊的是,可能会出现用面额为15的硬币,余数为8,此时额外需要3枚硬币,但如果少用一枚15硬币,那么23的价值可以用10+10+3来替代,少用一枚硬币,类似这种情况就先减去当前枚举的面额,再枚举一次五种面额的硬币是否可能用更少的可能去替代。有五种不同面值的硬币{1, 3, 6, 10, 15},选取任意数量的硬币使得它们的总价值为n,最少选取多少硬币。分别找出n为1到15时需要的最少硬币,然后枚举用五种面额的硬币去计算时的需要多少个,剩下的需要补多少;怎么天天交互起来了,没白玩扫雷。描述稀碎,详见代码。

2024-03-02 11:24:06 811

原创 Codeforces Round 930 (Div. 2)

每次查询可以得到一个字符:表示(pa | pb) 与 (pc | pd) 的大小关系。现在有一组长度为n的p隐藏序列,为0到n-1的排列组合,我们的目的是找到两个索引使。我们可以进行的询问为:选择任意a, b, c, d四个下标元素进行查询;= i,对于k>=2的下标进行运算,设d为k除本身外最大的除数,最多可以进行3*n次询问,在有限次数内找出最大异或对的两个下标。从前往后元素1下标的移动:1->2->4->…),从小到大交换操作后数组元素1的位置。最终x为小于n的最大二次幂。给出长度为n的整数数组a,

2024-03-01 05:14:24 2241

原创 Codeforces Round 929 (Div. 3)

题意:给出整数数组a,可以选择任意两种操作,一是选择一个元素从数组a中删除,二是选择一个元素数值增加1;个部分,给定一个正整数u,每完成一个部分成绩提高u,然后u-1,给出q组l和u,找出一个下标r,使得[l,r]的跑道成绩最高。思路:二分找到最接近u的区间即可,注意二分的上边界和下边界都有可能成为答案,找到上下最接近u的边界,然后取其中离u最近的部分。题意:可以对整数数组进行两个操作,一是随意重新排列或保持不变,二是选择连续子段元素符号倒转,求可能最大的所有元素和。题意:有n条跑道,每条跑道有。

2024-02-28 09:49:34 950 2

原创 think-cell Round 1

思路:每次取出当前最大元素+下标即可,需要处理的是取到重复元素的处理,若取到重复元素,则所加下标递减1即可。题意:给出长度为n的数组a,可以任意取出数组a中的元素,每次取出元素+当前下标存入一个栈中,然后比当前取出元素下标大的元素下标-1,注意堆栈是个排列,即堆栈中元素不能重复,求堆栈最大词典序。要最小化q中1的数量,最佳情况可以看出,当p中出现1是,q中每三个字符至少存在一个1,则可以符合当前子串good条件。然后是XX模式,即一个字符在一个子串中出现的次数为众数,则称字符串q为pi模式;

2024-02-21 02:11:29 851

原创 Codeforces Round 927 (Div. 3)

思路:可以看出,第i位的变化次数为1到i位的十进制,从前往后每一位的和类似前缀和,因为数可能很大,计算的时候从后往前用高精度的方式计数,注意最后可能多进一位的情况。题意:长度为n的整数数组a,给出n个命令,每个命令可以取出当前最左/右的元素,每次命令前输出当前剩余所有元素的积除m的余数。思路:n很小,顺着捋就行,一次一格,尽量避开陷阱,避不开的时候停止(两格以上连续陷阱)。思路:顺着题意模拟,让非王牌内耗,再用王牌耗,看能不能耗完即可,大模拟。思路:累加年份即可,碰到非整数倍的年份向上取整即可。

2024-02-21 02:10:16 544

原创 Codeforces Round 928 (Div. 4)

题意:现在有1到n张牌,按从小到大的顺序放下牌中的奇数,然后从小到大放下手中牌为任意奇数2倍的牌,以此类推,直到放下所有的牌,求第k次放下的牌是多少。遍历n个整数,遍历过程中存取每一个数的二进制,我这里用的是字符串存取,然后在已存取的字符串中看是否出现过对应可分为一组的二进制。题意:给出n个十进制整数,进行分组,一个组中的任意两数的对应31位二进制必须均不相同,最少分多少组。最佳可能对半分组,符合条件的二进制一定是一一对应的,即一组最多2个数。思路:记录行列坐标,看是否同时具有多个最左/最上的坐标。

2024-02-20 01:42:23 989

原创 Codeforces Round 926 (Div. 2)

在x局内,假设当前已经输掉了m,则下一局在不确定输赢的情况下,下注的最佳做法为若赢,可以在赢回之前输掉的m前提下,还可以再赚(k - 1),押注为(m + k - 1) / (k - 1) ,此时可以保证赢能回本,输亏的最小,并且累加到m为当前亏掉的钱;思路:每涂一个格子,一般可以覆盖两条对角线,关键在四个角,四个最多有两个可以贡献两条对角线,所以当k为奇数时,需要至少涂k/2+1个格子,当k为偶数时,需要涂k/2个格子,特别的,当k为所有对角线4*n-2时,需要单独多补一个格子。

2024-02-16 02:26:55 709

原创 Codeforces Round 925 (Div. 3)

题意:初始可能会有一个排序序列代表n个用户,用户会发送这个序列,发送的时候把自己调到第一个,即在原序列的基础上,每个用户发送的序列自己都是在第一位的,通过k名用户发送的序列,判断是否可能存在一个初始的序列。思路:注意只能操作一次,那么就仨情况了,前半,后半,中间,记录开头连续相同的数量,和结尾连续相同的数量,取最大,若首尾相等则相加,答案则为除了这些相等的头尾的其余元素。题意:通过一次操作,操作为选择任意长度区间变为同一个数,将长度为n的数组a的所有元素相同,最小化区间的元素数量。

2024-02-14 03:52:13 2188 3

原创 Codeforces Round 924 (Div. 2)

有长度为n的一排队伍,队伍的序号有个标准值k,每2*k-2重置一次序号,每段为(1,2…Y * (2 * k - 2) - x + 2 = n,即(n + x - 2) % (2*k-2) == 0。题意:给出长度为n的整数数组a,将1到n的数分别加到数组元素中,数组众数最大是多少。Y * (2 * k - 2) + x = n,即(n - x) % (2。题意:给出a*b的矩形,沿着其中一个边恰好一分为二后可以组成一个新的矩形。上坡:首先最后一段一定是1~x为结尾,而前面我们假设有Y段(2。

2024-02-12 21:20:55 604

原创 Codeforces Round 923 (Div. 3)

思路:用map分别记录ab数组元素,然后枚举1到k的元素,若有未出现的直接返回NO,然后记录ab数组的交集元素,最后检查仅存在于其中一个集合的元素是否大于k/2,若不存在则YES。题意:给出n个a数组元素和m个b数组元素,是否可以分别从a和b数组中取k/2个元素来组成1到k的每个元素。所以我们可以枚举答案序列的前k个起始元素,每个元素以下标+k的方式迭代到最后;题意:将1到n的数排列组合,使得每组相邻的k个元素的和相差不超过1。那么只要去掉的和新的元素差不超过1即可,而两元素下标差为k;

2024-02-07 19:57:41 427

原创 Codeforces Round 914 (Div. 2)(D1/D2)--ST表

题意:给出长度为n的数组a和b,可以对a进行任意次数操作,操作方式为选择任意区间将区间内值全部变成该区间的最大值,是否有可能使得数组a等于数组b。

2024-02-05 23:05:03 971

原创 Codeforces Round 922 (Div. 2)

题意:给出两个长度为n的正整数排列,可以随意交换ab中索引相同的两数,即交换是同时作用于两序列同下标的四个数的,最小化两序列的逆序对之和。题意:在n*m的墙内填1Xk的砖,k最小为2,墙得填满不留边,墙的稳定性为水平砖-垂直砖,最大化稳定性。思路:最大化稳定性即水平砖尽量多的用,垂直砖少用,那就k取最小,若m为奇数说明得竖着单独来一排。题意:给出整数a,b,x,求所有[0,x]中,|(a㊉i)-(b㊉i)|的最小值。思路:最小化其中一个序列,也就是排序其中一个序列,即可。

2024-01-31 16:24:56 646

原创 Codeforces Round 921 (Div. 2)

题意:现在给出一个字符串,判断是不是符合A中条件的字符串,若不是,则需找到一个不属于该字符串子序列的长度为n的字符串。题意:找到一个字符串s,使得所有可能长度为n的字符串都可以用前k个小写字母组成,并为s的子序列。题意:将正整数x分成n份,最大化这n份的最大公因数GCD。思路:A的题意理解对C很有用。

2024-01-28 15:23:38 588

原创 Educational Codeforces Round 161 (Rated for Div. 2)

当我们的路径上存在最近城市这条路时,我们的硬币花费就为1,假设路径不存在最近城市,那么我们的花费直接就是两城市的距离。现在每当路径上存在一段最近城市距离,我们的花费就会减少(这两个最近城市的距离再-1)枚硬币。,我们定义一个城市到另一个最近城市的距离为两城市坐标差的绝对值,最近城市有且只有一个。一个城市到最近城市花费为一枚硬币,否则花费硬币数为两城市的距离。首先给出城市是按照坐标大小排列的,意味着一个城市的最近城市有且只有一个并且相邻;则两城市间的最小花费为,两城市的距离 - 可以省去的硬币数。

2024-01-19 01:31:06 623

原创 Codeforces Round 920 (Div. 3)

当轮到A下棋时,A,可以将棋子向下,向右或向左斜单元格移动一格。题意:给出长度为n的数组a,现在从长度为m的数组b中选择n个数字组成数组c,使得数组c与数组a对应位置的总差值最大。思路:因为正方形与坐标轴平行,所以找出相同的两x或y坐标即可找到一条边的长度,平方就是面积,注意结果返回整型。时刻发送,开机一个单位损失a单位电量,关机稍后打开损失b单位电量,电量为0不能发信息,是否可以将所有信息发完。思路:不是最大对最小就是最佳答案,差值取绝对值,正负均可,这里用的是对排序后的数组ab进行双指针判断。

2024-01-16 22:02:49 1074 1

原创 Hello 2024

题意:Alice和Bob各有a和b枚硬币,每次他们可以选择交换硬币或者保留,然后扣除当前一枚手中的硬币,当一方没得扣另一方就赢了。思路:Alice先手,所以当硬币和为奇数时Alice必输,反之当总和为偶数时Bob必输。

2024-01-07 10:11:04 627

原创 Good Bye 2023

如果是,说明a是b的除数,且a和b还是x最大的两个除数,当前的最小公倍数是b,b/a为当前b最大能放大的倍数,则x=b*(b / a);思路:把所有已知的数字乘起来,判断是否整除2023,不够的k补1,注意当前乘积已经大于2023的情况。题意:序列a中所有数的乘积应为2023,现在给出序列中的n个数,找到剩下的k个数并输出,报告不可能。题意:找出n个n位数(n为奇数),每个数满足各数位的组成的集合相同,且每个数都是一个平方数;题意:给出正整数的两个最大的除数a和b,求x。然后就是字符串的操作了…

2023-12-31 17:15:17 1288

原创 Codeforces Round 917 (Div. 2)

删除操作只能删除第一或第二个字符,那么可以保留当前字符为前缀一直走到最后,每次需要统计第一次出现的字符来增加遍历到新字符时的新的字符串的数量,第一和第二字符不可能同时保留,保留的过程可以通过不断删除第二字符来保留第一字符,然后再从初始字符串中删除当前第一字符,再重复保留第二字符。因为每次都必须选择一个操作进行,一旦选择了第二种操作,那么之后的操作次数的分数可以直接得到,我们从前往后进行操作,记录每次得到的分数,取最大值即可。给出整数数组a,现在可以执行任意次数以下操作:任意选择数组a的一个元素。

2023-12-25 19:36:37 1020

原创 Pinely Round 3 (Div. 1 + Div. 2)

这里可以以右区间r为基准,因为要保证r>l,可以将左区间l排序后找到第一个小于r的数,然后将该数从l区间中删除,两种操作的最佳选择是set中的*prev(s.lower_bound®)(反转lower_bound函数,从寻找大于等于r的第一个元素变为寻找第一个小于r的元素)。题意:给出左区间数组l和右区间数组r以及每个区间的权值数组c,现在需要将l和r进行任意匹配,保证每个区间的r>l,然后将权值数组c与每个区间进行配对,最终每个区间的权值为(,现在需要最小化区间权重的总和。得到最后的最小区间权值和。

2023-12-24 17:35:07 1227

原创 Codeforces Round 916 (Div. 3)

思路:博弈,A和B的最终目的均为最大化自己剩余的弹珠以及最小化对方剩余的弹珠,对于某一种颜色的弹珠,在双方都至少有一颗的情况下,当轮到自己的回合时都是自己丢弃一颗弹珠,清空对方弹珠为最佳,而优先选择攻击的弹珠即为a+b当前数量最大颜色的弹珠,最小化对方留存弹珠,最大化自身留存弹珠。两人轮流,A先开始,轮到自己时选择一种颜色i,若两个玩家都至少有一个,那么自己丢弃一颗该颜色的弹珠,另一个玩家丢弃所有该颜色的弹珠,当没有一种颜色的弹珠双方均至少有一颗时游戏结束。现在最多完成k次任务,最多获得多少经验值。

2023-12-20 15:23:59 1245

原创 Educational Codeforces Round 160 (Rated for Div. 2)

思路:首先分别记录01字符的数量,然后遍历字符串s,遍历时需要记录走过的可以交换的0和1,若前方有可交换的字符时,就减去该字符,否则查看剩余01字符,选择交换然后同时减去两字符并将当前字符记录到交换字符中。思路:位运算,每次添加的元素均为二进制的x位,记录二进制中存入的位,当查询时只需要从后往前遍历二进制数,看当前位存储的是否足够,不够就*2累加到下一位尝试减去。将操作后的字符串定为t,字符串t与原字符串s左对齐对每一位进行比较,若均不相等则t为好字符串,空字符串默认为好字符串;

2023-12-19 19:21:24 872

原创 Codeforces Round 915 (Div. 2)

思路:首先是选择词性最大的子序列,即字典序最大,我们需要考虑的是整个序列最大的字符所处的位置,当该字符移动到最后时,若序列仍不是最小序列则不可能通过该操作达成最小序列,因为最大字符为首的子序列词性一定是最大的,而不是一个字符串越长词性越大,当其移动到最后时整个字符串无法继续进行操作(选择一个字符循环操作无意义)。题意:在一颗无向图的树中,可以进行一次塞尔达操作,每次操作选择任意两个顶点,然后将连接两顶点间的点包括俩顶点全部压缩为一点,之前连接这些点的子节点全部直接连接压缩后的新节点。

2023-12-17 10:51:31 230 1

原创 Codeforces Round 913 (Div. 3)

题意:游戏从0开始移动,有n段区间,每次移动最多不超过k的单位距离,需要移动n次,第i次移动必须在第i个区间内,最终需要到达第n个区间为游戏胜利,游戏胜利k值最小是多少。思路:记录数量最多的字符数量,若大于全部字符的一半,则最少剩余(mx - (n - mx))个字符,即最多字符的数量减去其他字符数量;题意:给出一个字符串,相邻字符不同可以删除,删除后剩下的字符按原顺序拼接,操作可以进行无数次,字符串最少剩余多少。思路:二分,每次记录当前最近/最远可移动到的距离,即最大的左边界和最小的右边界。

2023-12-06 17:02:22 745 1

空空如也

空空如也

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

TA关注的人

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