自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 The 2018 ICPC Asia Qingdao Regional Programming Contest (C,E,F,J,M)

思路:当n==m时,直接输出 "Richman".否则统计数组中0的个数,因为这些是不需要付钱就可以获得的,也就是说我要买的书的数量应该大于等于数组中0的个数才符合要求,之后我们再求还需要买 的书的数量,记为k,直接买数组中除0外的前k个,代价为sum,设最后一个买的书的下标为 j,在求 [j+1,n]中的最小值,记为mi,答案就是sum+mi-1.(注意此题不能二分答案)思路:经过比较小的操作后结果会陷入01循环,所以枚举即可.思路:打表找规律,VP时没写出来。

2024-07-23 20:59:10 106

原创 第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 (2023年) (1~5)

当 a[i] < b[j] 时 ,需要将 a[i] 与 a[i+1]合并,直接让 a[i+1]+=a[i] 即可(依次递推,就类似于前缀和了) i++,cnt++,当 a[i]> b[j] 时,则需要将 b[j+1]+=b[j],再将 j++,cnt++.因为 数组 a的总和等于数组 b的总和,所以最后 i 与 j 一定同时到达 n 和 m且 a[i] == b[j].思路:贪心 + 双指针 指针 i 指向 a数组首部,指针 j 指向 b数组首部, 当 a[i] == b[j] 时 i++,j++

2024-05-30 21:09:28 548

原创 Codeforces Round 938 (Div. 3)(A~E)

思路:类似于滑动窗口,先处理出来 第一个m 长度的窗口,up[i]表示 数字 i 在b数组中出现了 up[i] 次 ,mp[i]表示数字i在当前这个窗口中出现了 mp[i] 次.当窗口向右滑动时,假设进入窗口范围的数字是a[r],弹出窗口范围的数字是a[l],设cnt为窗口中满足条件的个数,如果mp[a[r]] < up[a[r]] ,表示a[r]的进入会使cnt增加1,如果mp[a[l]] <=up[a[l]] ,表示a[l]的进入会使cnt减少1,当cnt >= k 时,答案会加1。

2024-04-09 17:29:07 451 1

原创 做题记录(1)

S 老师擅长 OI,他给你了这样一道签到题:给定一个 n×m的小写字母构成的字符矩阵 c,从左上角 (1,1) 走到右下角 (n,m),只能向下或向右,求经过的格子形成的字符串字典序最小的方案。

2024-03-16 21:30:04 212 1

原创 Codeforces Round 933 (Div. 3)(A~E)

思路:首先我们用book[]数组表示当book[i]==true时,表示球可能在i位置,我们用t[]数组表示当进行一次操作后从book[]数组中有球的位置转移到操作后有球的位置,最后判断m个操作后book[]中哪个位置有球即可。思路:循环遍历2~n-1,判断是否可以通过操作使得全部数为0,当a[i-1]>a[i]*2时,说明a[i-1]一定不能变成0,否则的话将a[i-1]=0,这样做的代价是a[i]-=2*a[i-1],a[i+1]-=a[i-1],最后判断整个数组是不是为都是0。

2024-03-12 13:53:24 286 1

原创 Codeforces Round 929 (Div. 3)(A~E)

思路:将输入的数相加得到总和 sum.如果sum%3==0,输出0即可。如果sum%3==1,如果数组中存在 a[i]%3==1 ,可以通过操作将这个数移除数组,使得sum%3==0,此时输出1,但如果不存在的话就可以通过操作二使得sum%3==0,此时输出2.当sum%3==2时,可以通过一次操作二使得sum%3==0,此时输出1.思路:容易知道k与l的因子有关。先将l的已知处理出来然后逐个使用枚举逐个判断即可.思路:通过操作可以将负数变成正数。所以将所有的数取绝对值相加即可。思路:前缀和+二分过的。

2024-02-28 16:47:32 187

原创 Codeforces Round 925 (Div. 3)(A~E)

思路·:将题意进行转化 如果a[i]+a[j]%x==0,那么 ((a[i]%x)+(a[j]%x))%x==0,如果(a[i]-a[j])%y==0,那么 a[i]%y == a[j]%y,到这一步再做就比较简单了,用map进行记录,从前向后遍历即可.注意:如果a[i]%x==0,那么我们要找的是同样能够整除x的,所以就有了 代码中的 (x-c1)%x。思路: t 为当前可以利用的水, c 为 所有容器相等时装的水,从前向后遍历,当(a[i] + t < c) 说明不能满足条件。

2024-02-14 14:22:35 299 1

原创 Codeforces Round 923 (Div. 3)

对于要查询的 l 和 r,如果vector是空的,就输出-1,否则二分找到第一个大于等于 l 的下标 i,如果这个下标 i >= r,就输出-1(因为我们要保证 i 和 i+1 都要属于 l 到 r),否则 i 和 i+1 就一定属于 l 到 r.二分前还应该确保vector中至少存在一个 i >= l , 因此就有了代码中的 (v[res] < l )那一段。(发现的那一瞬间很有成就感)思路:数组A中<=k且只出现在A中的元素数量记作cnta,数组B中<=k且只出现在B中的元素记作cntb,

2024-02-07 11:03:31 313 1

原创 Codeforces Round 920 (Div. 3)

思路:根据题意模拟即可 如果两个消息之间的时间间隔t*a<=b就开机,否则就关机。思路:按横坐标进行排序,边长一定是前两个元素的纵坐标之差。思路:贪心,能用操作3就用。

2024-01-17 20:24:49 401

原创 牛客周赛Round 19

小红想知道,自己最少使用多少次技能,可以击杀这两只怪物?·选择一个元素xxx,将其分裂为aaa和bbb,需要保证a∗b=xa*b=xa∗b=x。小红希望用最少的操作次数,将所有数组的所有元素全部变成1。这是个回合制游戏,小红和两只怪物相遇了。·选择一个元素xxx,将其分裂为111和x−1x-1x−1。第二个技能叫烈焰风暴,效果是对每只怪物造成 yyy 伤害。第一只怪物有 aaa 血量,第二只怪物有 bbb 血量。第一个技能叫火球术,效果是对单体怪物造成 xxx 伤害。第一题:简单题,按题意模拟即可。

2023-11-12 21:45:44 206 1

原创 最长回文子串

当数据量较小时可以采取暴力的方法进行求解,时间复杂度为O(n^3),这里我主要给出两种O(n^2)的解法分别是动态规划以及中心扩展法,当然还有O(n)的解法,请读者自行去探索。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

2023-08-25 21:02:06 65 1

原创 方格取数(四维DP)

某人从图的左上角的 A 点出发,可以向下行走,也可以向右走,直到到达右下角的 B�点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。输入的第一行为一个整数 N(表示 N×N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的 0表示输入结束。设有 N×N的方格图 (1<=N<=9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。此人从 A 点到 B 点共走两次,试找出 2 条这样的路径,使得取得的数之和为最大。

2023-08-04 17:17:04 110 1

原创 最大子序和

题解:采用单调队列,首先求数组的前缀和s[i],将问题转化成求出两个位置i,看,使得s[i]-s[k]最大,i-k

2023-04-17 20:03:24 136

原创 C语言:二维数组

简单介绍了二维数组并附加了几道题。

2023-02-18 20:32:32 1335

原创 C语言(3):一维数组

简单介绍了一下一维数组,并附加了几道题

2023-01-15 16:46:23 755

原创 C语言(2):选择与循环结构

简要介绍了一下C语言的选择与循环结构并附加了几道例题。

2023-01-10 19:12:06 257 2

原创 C语言(1):顺序结构

介绍一些关于C语言顺序结构的一些基础知识,并附加上几道题。

2022-12-29 21:13:19 1185

空空如也

空空如也

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

TA关注的人

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