自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第十三届山东省ICPC大学生程序设计竞赛 The 13th Shandong ICPC Provincial Collegiate Programming(ADGI)

这是我们ICPC训练赛的第一场,打的很一般(打的很菜),毕竟是刚开始的第一天,打的一般还可以接受,想着明天的训练赛一定要打好-------回归正题在这次训练赛中,A题和I题这两道签到题过的速度还行,G题卡了有点久,主要是那个公式转换想了半天·······,我也不知道我们队当时咋想的,就是没想到把那个公式变一下,赛时突然队友把这个公式颠倒了一下,就有了思路,我很快就用map存最大堆的算法将它实现了出来。

2024-06-01 22:54:42 636

原创 2024 江苏省大学生程序设计大赛 2024 Jiangsu Collegiate Programming Contest(FGKI)

今天打的训练赛打的很水·····,我发现我们队做二分的问题做的太少了,即使看的出是二分,一样也是写不出check函数,可能是以前只做过简单的二分答案,遇到稍微难一些的二分就写不出来了,赛后得多刷刷二分答案的问题。回归正题。

2024-05-31 17:31:07 787

原创 2024CCPC东北四省赛 The 2024 CCPC National Invitational Contest(ADEJL)

今天由于cf服务器炸了,导致我们赛时不能提交代码,不过我们赛前有做过ADJ这三道签到题,所以很快就a了,然后我们就开始想E题,E题就是一个二进制转换的问题,弄懂这题可以补前导0很快就能写出来,剩下时间又是坐牢······,先不说题目提交不上去对我们心里造成的压力,那I题和L题这两道题看起来简单做起来难,L题也是我赛后才完全搞懂,赛时想了半天只搞懂了1操作对最终序列影响不大,主要还是2操作影响最终序列,只能说题目还是见太少了,还得多刷题。

2024-05-30 19:48:42 1265

原创 2024年西安交通大学程序设计校赛(ABCDEFO)

今天的训练赛出的题目偏简单,与XCPC的难度差别较大,但是我们这次打的也不是很好,卡在思维题卡了很久也没写出来,还需继续努力······

2024-05-29 19:44:47 732

原创 The 2022 ICPC Asia Nanjing Regional Contest - External D

通过观察题目可以发现答案的范围符合单调性,因此我们可以考虑二分,那么第K大的数>=mid 等效于 有超过k个>=mid的数* 主要就是利用等差数列的性质和差分的思想去维护cf这个差分数组* 对于第k大,只要进行前缀和处理后区间>=mid的个数多于k个即可

2024-05-28 20:27:14 335

原创 2022国际大学生程序设计竞赛亚洲区域赛(南京站) The 2022 ICPC Asia Nanjing Regional Contest - External G

今天的训练赛打的稀碎······,一道稍微难一点的签到题就把我难住了,看完题解确实感觉不难,看来题目还是刷太少了。情况,但这时我们又不能只考虑删数,当数不够删时就会直接暴毙,那么我们可以先让0都执行第二种可能,,最后求一下最小公约数相除即可。尽量让分子大,分母小,那么根据。,遇到分岔路(也就是0)时,

2024-05-28 16:13:14 317

原创 回顾二分答案 例题分析(D. Fast and Fat 和 I.Path Planning)

最近这两次训练赛都没看出这是一道二分答案的题,导致这两题都卡了挺久(主要还是连思路都不对),所以回头总结一下二分答案可能的情况,为下次遇到新题时能更快想到二分答案的思路。

2024-05-27 19:08:42 1512

原创 Codeforces Round 946 (Div. 3) C D

首先我们可以定义3个map用来存放所有三元组中的两个,然后再存一下每个三元组本身的个数,遍历数列时当出现相同的三元组中的两个,加上它的个数,当三元组本身重复出现时,需要减去它个数乘以3,最后输出ans即可。比赛时C题卡了挺久,还没做出来(qwq),D题也只是草草看了几眼,看榜单D题过的人数大于C题,写不出C题导致没心思看D题了,赛后重新补了这两道题。分析题目不难得出,我们设最后的坐标(x,y),当x或者y为奇数时,他们不可能到达同一点,否则我们可以将他们移动到(x/2,y/2)的位置上。

2024-05-26 11:52:50 572

原创 Panasonic Programming Contest 2024(AtCoder Beginner Contest 354)D题

由图像可知x的周期为4,y的周期为2,我们将2,3,4象限的a,b,c,d全部移到第一象限,既然求点(a,b)到点(c,d)黑色区域的面积,那么我们以原点为参照,点(c,d)的面积减去点(a,d)的面积减去点(c,b)的面积加上点(a,b)的面积即是我们要求的区域面积。剩下多余的面积就要进行讨论,x可能的情况为0,1,2,3,y可能的情况为0,1,那么总共有8种可能,一一罗列即可。求点(a,b)到点(c,d)这个范围内所有黑色区域的面积,并输出该面积的两倍。2个总周期面积就为16。

2024-05-24 15:35:17 447

原创 二叉树 中序+____ 的遍历

树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。

2024-05-22 14:07:16 506

原创 矿石样本分析【算法赛】(蓝桥杯)

写这题时没有思路,开2重循环会超时就放弃了这题,导致这次小白赛没AK,所以赛后重新补了这道题(看完思路是真简单啊)······。给定n个数,找出这n个数中其中两个数相加的值为k,找出其中经过时间最少的两个数(可以从左右分头找),若找不到直接输出-1。,将这n个数的下标存入map里面,然后判断枚举两个机器的出发点即可。

2024-05-20 14:16:54 388 1

原创 The 2023 ICPC Asia Hangzhou Regional Contest (The 2nd Universal Cup. Stage 22: Hangzhou) D题

思维构造题,由等号的右边(a2+a3)*(a4+a5),可以构造2和-1(0不可取),这样2+(-1)为1,等号右边就为a1和a2n,等号左边为2a1*(-2)*(-2)*(-a2n),这样就相当于解二元方程,那么直接去a2n为1,解得a1为1-(-2)*(n-2),然后按题意输出即可。给定一个整数n,输出2n个数,并且这些2n个数满足。

2024-05-19 23:25:59 736

原创 2024ccpc全国邀请赛(郑州)暨第六届ccpc河南省赛(ABFHJM)

这是我大一第一次参加CCPC,只拿到了一个省铜······还需继续努力---

2024-05-17 18:45:40 955

原创 何为LCA(最近共同祖先)?

(也称暴力枚举,从一个点开始向上标记他的父节点,直接标记到根节点为止,然后另另一个点也开始向上回溯,当这个点被标记过,则找到这两个点的共同祖先),当数据过大时,很明显这个算法会超时,所以本文不过多解释此方法。用层序遍历的思想求出树的深度和宽度,同时标记每个节点所在的层数,然后用tarjan算法求出a和b的共同祖先,最后套公式输出距离即可。顾名思义,就是求两个节点最近的共同祖先,就好比下图,2和3的共同祖先为3,2和4的共同祖先为1。2.枚举所有没有访问的过的子节点y,继续遍历子节点。5.标记当前节点回溯。

2024-05-13 20:56:46 587

原创 何为并查集?

并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。简单来说,并查集是用来管理元素分组的算法。并查集的作用是什么?并查集可以高效的对元素进行分组(合并在一起),并且能快速的查询两个元素是否属于同一组。P3367 【模板】并查集 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)假设我们有3个人x,y,z假设x打赢y,a[y]=x;也就是说x是y的老大。

2024-05-10 19:04:46 390

原创 二叉树的基础遍历2.0

前序,中序和后序的分析1.0已给出,本文不做过多介绍,本文重点讲二叉树的层序遍历。本文所用的方法为非递归(本蒟蒻不会递归的方法),非递归。在1.0中使用的是简单的结构体建树,本文注重用。:层序遍历就是从左到右,一层一层的遍历。

2024-05-08 16:52:23 559

原创 最长上升子序列题解

先判断这个子序列是否成立,在成立的基础上对这些子序列的个数进行前缀和处理,然后遍历数组,按子序列长度最大的可能数从大到小输出这些数。题目描述:给定n个最长上升子序列长度,求出这个序列的任意一种可能,若找不到则输出-1。

2024-05-05 20:28:38 452 4

原创 sdacm20240503 A G J K M 题解(The 17-th BIT Campus Programming Contest - Onsite Round)

解题思路:考数学思维,若a>w则车可以直线通过,不需要参数c,反之,若w

2024-05-05 15:49:05 412 2

原创 Assembly via Remainders题解

以防求出来的b序列过小,当b序列小于对应a序列下标的话,那么不论b【i】取任何值都满足不了b【i】%b【i-1】=a【i-1】,所以当b序列所有数都大于a序列的最大数,解题更轻松。解题思路:先找出a序列最大的数,令b【0】为最大的数加1,b数组其他下标满足b[i]=b[i-1]+a[i-1],最后输出b数组。题目描述:给定一段a序列,在求出n个数的b序列且满足b【i】%b【i-1】=a【i-1】。在打比赛时写出来ac了,但是代码太弱了,等到后台重新判断时被。了,因此重新写了一份代码。

2024-05-04 23:10:01 324

原创 2023CCPC哈尔滨 B L M题解

*解题思路:**由公式可以推导出mood[i]=mood[i-1]/2+a[i],单纯只用这一个公式还不够,当数过小或者过大时会超出double的范围,因此我们需要将这些数分成整数与小数两个部分,若mood[i]为偶数时,那么它除以2必然是整数,当它为奇数时,它除以2肯定就含有小数,因此当它为奇数时需要提出它的小数部分(包含正负号)。**题意描述:**给定一个公式,判断在这个公式下每个下标i的值与0的关系,大于0输出‘+’,小于0输出‘-’,等于0输出‘0’。

2024-05-04 19:00:23 302

原创 对顶堆和简单的位运算

维护一个最大堆一个最小堆,最大堆里存的是较小的一半数据,最小堆里存的是较大的一半数据,并且维持最大堆元素个数不少于最小堆元素个数,并且最大堆元素个数与最小堆元素个数之差小于等于1。每次来一个数的时候,先决定其入哪个堆,然后如果堆的元素个数出现了违法上面规定的情况,就做相应的调整。即:两位同时为“1”,结果才为“1”,否则为0。例如,142 1 = 71,142 >> 2 =35。左移1相当于该数乘以2,左移2相当于该数乘以2*2即乘以4。

2024-04-30 16:02:15 331

原创 滑动窗口模板

一个简单的思路,就是在每一个滑动窗口中,遍历一次滑动窗口中的数,找到滑动窗口中的最大值和最小值,如果标记原窗口最大最小值及其位置,那么在新的窗口中,若最大最小值仍在新窗口中,滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。:窗口有两类,一种是固定大小类的窗口,一类是大小动态变化的窗口。若数组长度为n,滑动窗口的长度k,则有n-k+1个滑动窗口。如上代码是模拟双端队列实现的,时间复杂度比双端队列快了一倍。我们发现每次滑动窗口时,,若最大或最小值不在新窗口中,我们再遍历一次窗口。

2024-04-28 15:45:48 745

原创 快排和归并的模板及其应用

快排和归并的模板及其应用

2024-04-27 10:59:59 327

原创 二叉树的基础遍历

前序:根左右(先输出父节点,在分别输出子节点的左节点和右节点)题目描述:给出每个结点的两个子结点编号,根节点都为1,如果子节点为0,则它就不存在,然后依次求出它的前序、中序、后序遍历。先用递归找出树的所有左节点并依次输出,找到末尾则回溯回上一个父节点,然后向右节点递归并依次输出。中序:左根右(先输出子节点的左节点,在输出父节点,然后输出子节点的右节点)例如:1,2,3,4,5,6,7(图片中的左,右分别是前,后,写错了)后序:左右根(先输出子节点的左节点和右节点,最后输出父节点)

2024-04-23 20:22:38 464

原创 常用的ctype库以及vector和pair的常见用法

ctype库isalnum:检查 ch 是否为字母或数字isalpha:检查 ch 是否为字母isdigit:检查 ch 是否为数字( ‘0’ ~ ‘9’ )islower:检查 ch 是否为小写字母(‘a’ ~ ‘z’)toupper:将 ch 字符转换成大写字母(ch=toupper(ch))

2024-04-21 23:01:28 1137 1

原创 常用的string函数库

transform(s.begin(),s.end(),s.begin(),::tolower或者::toupper)//将字符串s转化为小写或者大写。// 结果:23456-----参数5表示:截取的字符串的长度。// s1.begin(),s1.begin()+5 是左闭右开区间。string的排序:sort(s.begin(),s.end())

2024-04-19 18:44:06 552 1

原创 模拟竖式计算除法

正确思路:我们可以模拟竖式相除,当被除数大于除数时,就相除,然后对被除数和除数取模,若取模后不为0(即还没找到s),那么就将他乘以10在加上1(加上1是因为光棍的所有位数都为1),对于位数另开一个计数器统计位数即可。题意描述:给定一个整数x,求出这个整数乘以最小的整数s是一个光棍(光棍就是所有位数都由1组成),以及输出光棍的位数。对于这份代码我也没报多少希望,果然当光棍的值超出long long范围时,则找不到答案,所以这种方法是错的。错误思路:直接暴力穷举关棍,当光棍可以整除x时,就找到这个值。

2024-04-16 20:12:06 561

原创 如何求最大公约数以及最小公倍数

最小公倍数 = 两数之积除以最大公约数,在这里使用辗转相除的方法求解最大公约数,即a与b的最大公约数可以转化为a、b之间的余数为两者之间最小的数之间的公约数。所以对于输入的两个数进行连续求余,直到余数为0,求余的分母即为结果。题意描述:n个分数求和,若结果只为整数则只输出整数,否则输出的形式为一个整数k,和一个分数形式,分数必须是最简形式且分子小于分母,若整数为0则不输出整数形式。分析:首先我们需要将分子和分母的总和分别存入两个变量,模拟数学中分数相加的形式,每一次相加后都要对其进行约分,最后按题意输出。

2024-04-14 13:58:16 551 1

原创 P8754 [蓝桥杯 2021 省 AB2] 完全平方数

首先求出n质因子的个数,将每个质因子的个数和位置分别用两个数组存储(套用质因数分解模板),遍历质因子的个数,当这个质因子的个数为奇数时,x就一定包含这个质因子,所以就乘以这个质因子,最后输出。题意描述:给定一个整数n,满足n*x是完全平方数,输出找到的最小正整数x。(完全平方数的概念:若a是完全平方数,则存在一个正整数b,满足a=b*b。由于本蒟蒻很少做数论的题型,导致一看到这类题型都无从下手,看完题解后才明白这题考的是什么知识点,因此写下这篇博客。代码实现:(代码里面是质因数分解的模板,写错了)

2024-04-10 18:30:20 438 1

原创 P8739 [蓝桥杯 2020 国 C] 重复字符串

分析:我们需要先判断字符串可以分解为几段子序列(l=s的长度/n),当s的长度不能整除n时,直接输出-1,若整除则遍历字符串s的一段子序列(由于题目要求所有子序列相同,所以就直接取第一段子序列),然后在里面另开一重循环,循环的变量每次都加上l,用一个数组v来统计字符串中各个字符出现的频率(既然要修改字符,那么我们就先找出字符串s中出现频率最大的字符,将其他字符都修改为这个字符),找出出现频率最大的字符,每次循环都加上n-出现频率最大的字符的个数(将不同于这个字符的其他字符都转化为这个字符),最后输出结果。

2024-04-10 16:16:20 451 1

原创 浙江理工大学 2024 年程序设计竞赛 F题

分析:这题有多种解法,可以从后往前搜,标记下标位置(本蒟蒻不会),我用的是从前往后搜,标记下标位置,首先将字符串s最前面空出一个字符(即让s【0】为空字符),另开一个字符串s1为leetcode,然后从下标1开始搜,标记下标位置为pos,然后在开一重循环,找字符串s中从标记的位置找s1,若找到则让pos为找到的位置加1(继续往后找),找不到则直接break,最后输出当前位置。这是一道比较基础的搜索题,当时在比赛中用了双重循环剪枝后还是超时了,还用了dfs搜索也是没过,赛后看了其他人的代码由此补题。

2024-04-07 19:32:12 377

原创 何为动态规划

动态规划(英语:Dynamic programming,简称 DP),通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。动态规划常常适用于有重叠子问题和最优子结构性质的问题。简单来说,动态规划其实就是,给定一个问题,我们把它拆成一个个子问题,直到子问题可以直接解决。然后呢,把子问题答案保存起来,以减少重复计算。再根据子问题答案反推,得出原问题解的一种方法(类似于递推)。

2024-04-01 22:24:20 916

原创 [蓝桥杯 2022 国 B] 卡牌

分析:由题意可知这题是一道二分答案的题,那么它的左边界就为a【i】最小值,右边界为a【i】+b【i】的最大值,套用二分求右边界的模板即可求出答案。二分判断有一些细节,用一个循环遍历数组,当所需的牌数超出b【i】时直接return 0,反之将x-a【i】的牌数相加,当它的总和小于等于m时,return 1,反之reutrn 0。他一共有 n 种卡牌,第 i 种卡牌上印有正整数数i(i∈[1,n]), 且第 i 种卡牌现有 ai​ 张。第二行为 �n 个正整数 1,2,a1​,a2​,…

2024-03-31 19:43:47 185

原创 信息工程大学第五届超越杯程序设计竞赛(同步赛)G 完美数字

来源:牛客网。

2024-03-31 14:28:33 157 1

原创 信息工程大学第五届超越杯程序设计竞赛(同步赛)D 实验室有多少人

来源:牛客网。

2024-03-31 12:14:57 514

原创 算法时间复杂度的时间限制以及算法时间复杂度的分析

时间复杂度大小比较:O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2)<O(n^3)<......<O(n!第一步: i n*n n*n/2 n*n/4 n*n/8。(3)O(n根号n​)的算法能解决的范围在n<=10^5(二层循环,其中一层循环变量呈倍数关系)(1)O(n)的算法能解决的范围在n<=10^8(KMP字符串查找法,欧拉筛)(4)O(n^2)的算法能解决的范围在n<=5000(二层for循环,dp)

2024-03-31 09:52:38 456 1

空空如也

空空如也

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

TA关注的人

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