自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CSDN博客不更新了哦~ 后续在同名的知乎和微信公众号更新

如题。感谢关注,感兴趣的小伙伴可以关注我同名的知乎和公众号哦~

2023-05-18 09:04:52 170

原创 一个菜鸡的ACM之路

花絮做为一个大三计软狗,那么菜,打完19年的区域赛,也没时间打20年的区域赛了吧。这个学期,是我的第一次,也是最后一次,打CCPC和ICPC,忙前忙后,共打了3场;打完后,又去赶各种死亡DDL;DDL赶完后,又是死亡期末考。于是,一些关于ACM的个人总结之类的,就拖到了现在。菜鸡文笔也不好,但ACM3年过来,多少得有点仪式感,记录点什么吧。大一  刚进来那会,进了计软,0基础,啥都不会,啥...

2020-01-17 16:33:28 1622 3

原创 D1. Range Sorting (Easy Version)

对于区间[l,r],设l<=l1<l2<=r,如果a[l1]>a[r],a[l2]>a[r],那么为了最小开销,我们选择最大区间[l1,r]进行排序。我们可以枚举所有的相邻点(a[i],a[i+1]),计算对于右边界为a[i+1],a[i+2],…,a[n]时,分别需要移动多少元素,定义数组a的连续子数组为,选择下标1<=l<=r<=n后,截取的子数组a[l],a[l+1],…每次操作,可以选择一个区间,l,r,并将数组的区间[l,r]进行升序排序。给定数组a,求它所有连续子数组的美丽值之和。

2023-05-17 22:38:01 714

原创 D2. Red-Blue Operations (Hard Version)(思维/贪心/前缀和)

建议先从easy version开始做。

2023-05-16 07:52:41 270

原创 D1. Red-Blue Operations (Easy Version)(贪心/思维)

为了确保在应用最后n次操作的时候,元素之间的变更最少(这里需要理解下,因为我们要求的是数组的最小值,因此,需要确保整体增加的时候,是相对均匀的)。经过res次-1操作后,数组a’则变成所有元素都相等了,那么之后,每n次-1,我们的数组最小值都会-1。我们可以把前面k-n次操作,拆分成(+1,-2),(+3,-4)…q个查询(1<=q<=1000),每次查询,给定整数k(1<=k<=10^9)当k<=n时,我们贪心地把每个操作,应用到最小的k个元素,即可满足。我们把前n大的元素,累加,应用到这n个元素。

2023-05-15 08:27:07 373

原创 C. Contrast Value(贪心/思维)

数组b为数组a的子数组,当前仅当我们可以从数组a中删除若干元素,按顺序拼接得到。给定长度为n的数组a,求它的一个子数组b,使得数组b和数组a的绝对值相等。因此,我们先给数组去重。去重后,考虑两端元素,其次,再考虑。特别的,长度为1的数组,绝对值为0.求出能满足条件的数组b的最小长度。定义一个数组a的绝对值为。

2023-05-14 17:05:29 160

原创 B2. LuoTianyi and the Floating Islands (Hard Version)(树/组合数学/概率论)

当k等于3时,不妨设它们为a,b,c,我们将它们之间的路径两两相连,那么三个节点必定有一个为中间节点,不妨设为a,此时,a显然是好节点。证明:假设a为好节点,且它的子树上的染色节点数h小于k/2,假设它的父节点为p,当我们将节点从a迁移到h时,新增的距离 代价为 h - (k-h) = 2h-k <0,说明p节点更优,与a是好节点矛盾,得证。利用该结论,我们可以用排列组合的方式,枚举所有的节点i,从节点i的子树取k/2节点进行染色,再从排除i的子树的剩余节点取k/2节点染色,就是。对应的期望好节点个数为(

2023-05-13 00:01:42 221

原创 C. LuoTianyi and the Show(贪心)

如果想要同时利用-1和-2呢?类似的,考虑只用-2(不妨表示-2的数量为second),不用-1的情况,那么此时,我们可以贪心地,从左往右填充,此时最多填充数量为 min(second + h, m)再考虑只用-1(不妨表示-1的数量为first),不用-2的情况,那么此时,我们可以贪心地,从右往左填充,此时最多填充数量为 min(first + h, m)我们枚举做为标准杆的位置,并预处理,计算每个标准杆,前面和后边的空闲坑数量left[i],right[i],从而计算出该场景下能填充的最多人数。

2023-05-09 22:26:04 769

原创 D. Unique Palindromes(回文串/构造)

证明:假设 长度为len的前缀子串新增的回文串,最大长度为mx,那么表示s[len-mx+1, len-mx,…,len]是回文串,假设存在另一个新增的回文串,长度为mx2 < mx,那么表示s[len-mx2+1, len-mx2,…,len]不是新增的回文串,矛盾。对于长度>3的前缀子串(假设长度为len),它的回文子串的个数,相比长度为len-1的前缀子串的回文子串数,最多增加1。结合规律1和规律2,我们可以得出结论,对于长度len>3的字符串,它的回文子串的个数,不超过它的长度len本身。

2023-05-04 22:25:17 481

原创 Tear It Apart(思维/字符串)

如果已知我们最终要保存的字母类型,那么我们可以将原字符串以“要保存的字母”为边界切割,计算每个子串全部删除需要的操作次数,取最大的即可。从字符串中,选择下标不相邻的元素,进行删除,删除后将剩余字符串按照原来相对顺序拼接起来。因此,我们枚举每个字母,计算每种场景下需要操作的最小次数,取最小值。考虑一种场景,要把长度为len的字符串全部删除,最少需要多少次。问,最少需要操作多少次,使得剩余元素都相同。欢迎关注同名GZH:对方正在debug。

2023-04-27 07:14:59 121

原创 Sort the Subarray(思维/排序)

我们可以找出左边第一个取值不同的边界(a[l]!=a2[l]),以及右边第一个取值不同的边界(a[r]!a=[6,7,3,4,4,6,5], 选定l=2,r=5,那么排序后的a2=[6,3,4,4,7,6,5]。已知一个数组a,我们可以选择它一个下标范围[l,r]进行升序排序,得到数组a2。如果存在多组解,选择下标范围最长的;如果下标范围最长的有多组解,输出任意一解。特判:我们需要考虑a和a2完全相等的场景,此时题目转换为最长有序 连续子数组。现给定数组a和a2,求出原来的下标范围l,r。

2023-04-26 17:28:11 152

原创 Find the Closest Palindrome(字符串/贪心/模拟)

/

2023-02-07 23:10:11 179 1

原创 C. Ice and Fire(贪心/思维)

/

2022-12-19 23:25:28 880 1

原创 D. Count GCD(数论/gcd/素数筛/容斥)

/

2022-11-08 22:43:27 782 2

原创 D. Yet Another Problem(异或/位运算/二分)

/

2022-11-07 22:29:35 509 1

原创 C. Swap Game(简单博弈)

/

2022-11-07 09:30:00 619

原创 F. Conditional Mix(数论/dp)

2022-11-04 22:56:58 643

原创 D. Knowledge Cards(思维/模拟/优先队列)

/

2022-11-01 09:30:00 869

原创 E. Hanging Hearts(树形dp)

/

2022-11-01 09:30:00 376

原创 B. Jumbo Extra Cheese 2(贪心)

2022-10-30 11:41:48 553

原创 D2. Balance (Hard version)(数论/模拟/set)

2022-10-30 10:59:58 317

原创 D1. Balance (Easy version)(暴力/思维)

.

2022-10-27 22:47:32 471

原创 C. Sheikh (Easy/Hard Version)(前缀和/双指针/二分)

2022-10-27 22:23:33 720

原创 F. The Beach(图论/最短路)

.

2022-10-26 20:28:44 420

原创 E. Wish I Knew How to Sort(数论/概率dp)

.

2022-10-26 09:15:00 144

原创 D. Factorial Divisibility(数论/贪心/计数)

.

2022-10-25 22:30:06 636

原创 C. Make Nonzero Sum (easy version/hard version)(贪心)

2022-10-25 09:30:00 706

原创 [CSP-J2020] 方格取数(dp)

2022-10-23 21:01:00 538

原创 B. Death‘s Blessing(简单贪心)

2022-10-21 08:03:17 454

原创 摆渡车(二维dp/前缀和)

2022-10-18 09:00:00 372

原创 C2. Good Subarrays (Hard Version)(双指针/前缀和/组合数学)

2022-10-14 09:30:00 418

原创 C1 - Good Subarrays (Easy Version)(双指针)

2022-10-11 22:06:56 422

原创 D. Ela and the Wiring Wizard(最短路径/floyd)

题目参考题意给定一个带权无向图,n个点,m条带权无向边。要从点1走到点n。走之前,可以执行以下操作对于连接点u,v,边权为w的边,可以将它从点u移除,并连接到任意一个与v相邻的点(点v也可以与自己相连)。但需要花费的时间为w单位。可以执行以上操作任意次。问,执行了上述若干次操作后,从点1走到点n,需要的最短时间是多少(包括修改边时花费的时间)。思路定理1:点1到点n的最短路径,经过的边,边权一定相同。反证法:如果点1到点n的最短路径,存在两条相邻的边,边权不同,w1,w2,不失一般性,

2022-10-10 22:48:35 411

原创 D. Reset K Edges(dfs/bfs/二分/贪心)

.

2022-10-07 16:24:00 281

原创 E. Cleaning Robot(dp)

.

2022-10-07 16:23:24 246

原创 D. Prefixes and Suffixes(字符串/思维/回文串)

题目参考题意给定2个长度为n的字符串s1,s2。给定操作:选择整数k<=n将字符串s1的前k个元素,和字符串s2的后k个元素,做交换。比如n=5, k=2,则s1[1,2], s2[4,5] = s2[4,5], s1[1,2]可以执行上述操作任意次,问最终,s1和s2能否相等。相等输出YES,否则输出NO思路我们观察发现,字符串s1的第i个元素和字符串s2的倒数第i个元素,1<=i<=n,我们发现,这2个元素的相对位置都保持不变。因为每次交换,s1的第i个元素(i&

2022-10-06 22:44:35 666

原创 D. Permutation Addicts(图论/bfs)

题目参考题意给定长度为n的数组a和整数k,0<=k<=n。根据以下规则计算数组b对于1<=i<=n,令x=a[i]如果x<=k,令b[x]为最后一个元素a[j] (1<=j<i) ,使得a[j]>k,如果不存在该a[j],则令b[x]=n+1;如果x>k,令b[x]为最后一个元素a[j] (1<=j<i),使得a[j]<=k,如果不存在该a[j],则令b[x]=0。现在已知b数组,求k和a数组。如果有多个a满足题意,输出任

2022-10-06 22:44:07 531

原创 C. Phase Shift(模拟/链表)

2022-10-04 23:02:34 429

原创 B. Meeting on the Line(模拟/二分/思维)

2022-10-04 22:59:25 658

原创 C. Minimum Notation(简单思维/单调栈/逆序对/归并排序)

题目题意给定一个数字字符串,给定操作每次操作,可以选择任意一个位置上的字符d,将该字符更新为d=min(d+1,‘9’),并将它移动到任意位置:可以移到任意两个字符中间,也可以移到最前面和最后面。问经过任意次上述操作,能得到的最小字典序的数字字符串是多少。常规思路对于逆序对i<j,s[i] > s[j]为了字符串字典序更小,需要将第i位和第j位交换。可以选择移动i,也可以选择移动j,由于移动时,对应的字符会加1,我们选择牺牲更大的i,来保全j。贪心策略,对于每个存在逆序对

2022-09-27 08:46:35 476

空空如也

空空如也

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

TA关注的人

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