自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 noi-2025年12月16号作业

我们分别使用mx、mn数组记录每一道题的最大值分数和最小分数,同时使用一个e数组来保存每一道题的分数。首先特判,如果人数小于等于2的话,一定要上台,然后我们记录一下要改变的次数并贪心地修改分数,如果需要改变的次数大于c的话,那么就一定要上台。最后,我们判断一下改的是否合格。=0的话,那么答案一定为0。接着我们分别对x和y进行质数分解,如果对于对一个质数,x和y的次数不相等的话,那么就有两种可能。把p从非常大的值一路减小,会发现其实就是对a数组进行压缩。set的使用,思维题。

2025-12-17 20:10:44 276

原创 noi-2025年12月09号作业

我们定义一个结构体node来保存每名学生的输入顺序、名字、三门分数、三门分数之和。我们定义一个结构体node来保存每名学生的输入顺序、名字、三门分数、三门分数之和。然后我们定义一个函数cmp,如果两个学生的总和不一样,那么总和大的排在前面,否则顺序小的排在前面。我们定义一个结构体node,保存每名学生的学号、年龄、成绩。我们定义一个结构体node,保存每名学生的学号、两个成绩,并且在node里面再定义一个函数get_sum来返回两个成绩之和。我们定义一个结构体node来保存每个试卷的输入顺序、必要性。

2025-12-10 12:54:48 119

原创 课后作业-2025年12月07号作业

我们定义一个dfs函数,step代表要选取第step个数,last代表上一个选取的数。我们定义一个dfs函数,step代表第step个数选取哪一个。对于每一个人,我们都有两种选择方法,选或者不选。B3622 枚举子集(递归实现指数型枚举)B3623 枚举排列(递归实现排列型枚举)P10448 组合型枚举。

2025-12-07 19:40:52 133

原创 课后作业-2025年12月2号作业

按照题目意思进行模拟,别忘记使用unsigned long long。B3860 [语言月赛 202309] pip install。P2562 [AHOI2002] Kitty猫基因编码。B4269 [朝阳区小学组 2019] square。B2144 阿克曼(Ackermann)函数。按照题目意思就模拟一下。B2143 进制转换。使用f函数来递归求解。按照题目意思进行模拟。

2025-12-03 13:07:17 214 1

原创 noi-11月30日当堂练习

P1294 高手去散步。P1706 全排列问题。

2025-11-29 21:43:13 230

原创 noi-2025年11月25号作业

P1259 黑白棋子的移动。P1322 logo语言。

2025-11-29 20:23:43 173

原创 课后作业-2025年11月23号作业

dp[x][y]代表从(sx,sy)开始走到达(x,y)的最小步数。从1到n开始枚举,判断反向建边之后从i这个点开始是否能够到达n个点。从(0,0)这个点开始访问,这么被1包围的0是访问不到的。P1746 离开中山路。P1162 填涂颜色。

2025-11-23 17:16:15 338 1

原创 noi-2025年11月18号作业

对于n个盘子,我们先把source的n-1个盘子使用一种方法挪到中转的那个盘子,然后把第n个盘子从source盘子挪到target盘子,最后把前n-1个盘子从中转的盘子挪回到target盘子。假设第x天的桃子为x个,那么第x+1天的桃子数为x/2-1个。我们倒序递归的话,第x天的桃子数等于第x+1天的桃子树*2+2。如果当前的奶牛数x小于k或者(x-k)%2!P1010 [NOIP 1998 普及组] 幂次方。P5739 【深基7.例7】计算阶乘。B2064 斐波那契数列。B4025 最大公约数。

2025-11-19 11:02:12 414

原创 课后作业-2025年11月16号作业

从(0,0)上下左右搜索染色,遇到障碍或者越界就回溯,最后会发现未被染色的非障碍的点就是被障碍保护的地区,最后遍历全地图寻找此类点数目即可。为#的地方就是船,然后dfs搜连通块,把搜到的都标记一下,保证不重复。题目说船一定是方形的,所有我们还要判断一下是否合法。按照题目意思进行搜索,每种要么选,要么不选。表示已经选择的数的个数。对于每一种组合,计算它们的和,并判断这个和是否是素数。不为0的地方就是细胞,然后dfs搜连通块,把搜到的都标记一下,保证不重复。P1506 拯救oibh总部。

2025-11-16 14:58:06 364

原创 noi-2025年11月11号作业

因为两个数的和是确定的,所以我们枚举一个数x,判断一下x和(s-x)都是不是质数,如果是的话,用x*(s-x)更新一下答案。如果一个年份对400取模等于0,或者对100取模不等于0并且对4取模等于0,那么这个年份就是闰年。如果一个数除了1和它本身之外没有约数,那么这个数就是质数。P1980 [NOIP 2013 普及组] 计数问题。非常简单,就是按照题目意思进行模拟就行。P5735 【深基7.例1】距离函数。简单,按照题目意思计算一下周长就行。P5736 【深基7.例2】质数筛。按照题目意思就行模拟。

2025-11-12 10:24:48 183

原创 课后作业-2025-11-09

我们定义一个L数组,L[i]代表从i这个下标开始不上升地从左边走,最远能走到哪个下标。同理,我们定义了一个R数组,R[i]代表从i这个下标开始不上升地从右边走,最远能走到哪个下标。我们按照题目的意思进行模拟,对于非老年人我们直接把它们的年龄都固定为1就行,然后再写一个自定义的排序算法cmp,先按照年龄排序,再按照输入的顺序排序。遍历的时候,如果当前遍历到的数等于ans,那么cnt+1;这是一个栈的模板题,我们按照题目的意思进行模拟就行。那么到了最后,计数器ans记录的那个数必定是众数。cnt的初始值为0;

2025-11-09 16:02:46 318

原创 小测试-2025-11-09

所以就可以把为题直接简化为开始时士兵的方向,士兵方向有两个,一个向左,一个向右。两人相遇后会掉头,就等同于没掉头,因为走过的路程是一样的,当他们互换了灵魂。我们对y坐标进行排序,输油管道的y坐标就是中间那个的y坐标。P8722 [蓝桥杯 2020 省 AB3] 日期识别。substr函数的运用,字符串转换成整数。P9203 时效「月岩笠的诅咒」判断两个字符串是否相等。P1862 输油管道问题。

2025-11-05 11:28:00 192

原创 课后作业-2025-11-02

我们先统计一下不在合理范围内的组 缺少和多余的总人数,接着把组的人数变成合理的范围呢。最后我们枚举一下判断就行。我们先统计一下每个数出现的次数,然后再枚举a,b=a-c,我们直接把b出现的次数加到答案里面就行了。我们先输入每一个地毯的数据,然后倒叙枚举,我们依次判断一下每一个地毯形成的矩形是否符合就行。写过相关知识点的话,就按照题目意思就行排序然后输出就行。对于每一个平台,我们按照题目的意思一个一个去找就行。结构体,sort函数,自定义比较函数。map的使用,桶计数法。P1109 学生分组。

2025-11-03 21:17:57 346

原创 noi-2025年10月28号作业

我们先输入两个字符串,然后计算一下每个字符串代表的数,最后对47。这题因为数据范围很小,所以我们直接暴力枚举,每次删除第一个高峰。我们按照题目的意思就模拟就行,用一个数组a来记录变量的当前值。P1200 [USACO1.1] 你的飞碟在这儿 Your。我们在读取四行输入的同时统计每个字母出现的次数,最后再打印。按照题目进行模拟,不难,就是需要判断的情况有点多。简单模拟,getline函数的使用。P1553 数字反转(升级版)P1597 语句解析。P1106 删数问题。

2025-10-29 13:10:09 205

原创 课后作业-2025-10-26

对于这m个技能,我们先判断一下a是否等于0,因为0不能等于除数。如果a等于0且b也等于0,那么一定不能杀死boss。否则我们先算出来技能能够释放的次数cnt,再使用次数乘以伤害,就能得到mx,如果mx大于等于n,就可以杀死boss,否则不能。我们从m到n枚举,对于这其中的每一个数我们都统计一下0-9这10个数出现的次数。我们先输入两个字符串,然后计算一下每个字符串代表的数,最后对47取模。今天的不高兴程度=昨天不高兴程度+今天上课总时间减去 8。对于n次操作,我们每次都用一个for循环去模拟一下。

2025-10-26 15:31:11 239

原创 noi-10月21号作业

我们想一下,对于一个字符串,如果有第一个字符的话,那么一定会有一个,如果有第二个字符的话并且前面那个位置的字符不是应该有的,那么说明这个字符是还要再加一个,以此类推。我们先写一个for循环枚举在哪个位置发生变化,再枚举把当前位置变成哪个字母,由于字符串的最大长度比较小,因此时间复杂度是ok的。getline函数的使用,把大写字母转换成小写字母,模拟。我们按照题目进行模拟就行,注意substr函数的使用。我们也是按照题目的意思去写就行,没啥特别的地方。比较简单的一道题,按照题目意思去模拟就行。

2025-10-22 13:57:25 296

原创 noi-10月14号作业

遍历字符串,如果是小写字母(>='a'&&<='z')的话就转换成大写字母(>='A'&&<='Z')。我们先统计一下字母出现的最大次数mx和最小次数mn,然后判断一下(mx-mn)是否是质数。我们按照题目进行模拟就行,可以使用to_string函数来将整数转换成字符串。质数:除了1和它本身之外没有任何约数,0和1不是质数。我们先把输入整行读取到字符串,然后遍历一遍并判断。遍历字符串,直接加上偏移的位置并对26取模就行。P1914 小书童——凯撒密码。getline函数的使用。P1957 口算练习题。

2025-10-17 09:06:06 261

原创 课后作业-2025-10-12

每名小朋友至少拿到一块饼干,老师想让每名小朋友拿到的饼干数量都不一样多,我们就可以求出最少需要多少饼干才能满足要求,也就是第一名同学1个饼干、第二名同学2个饼干、第三名同学3个饼干.....第k个同学k个饼干,也就是一共最少需要need=(1+2+3+...+k)=(1+k)*k/2个饼干。那么v2就等于(b[1]+b[2]+b[3]+.....+b[n])*2。v3就等于(a[1]-b[1]+a[2]-b[2]+a[3]-b[3]+.....+a[n]-b[n])。P1838 三子棋I。

2025-10-13 19:14:02 197

原创 2025年10月12号小测试

所以我们在枚举的时候,用double类型的变量来存储数值之和,然后在进行除法的时候要把int类型的变量i强制转换成double类型,把1写成double类型的1.00。根据题目意思,连号指在序列中,从小到大的连续自然数,例如4,5,6,7,8。从题目中我们知道,k个烟蒂可以换一根烟,那么我们写一个while循环,判断当前剩下的烟可以换成多少新烟,一直到当前剩下的烟不能换新的烟为止。我们定义一个数组f,f[i]代表以第i个元素结尾的最大子段和,那么第i个元素要么接上第i-P1420 最长连号。

2025-10-11 13:16:29 299

原创 课后作业-2025-10-07

首先对于第一种情况,就是最小值要比次小值小,最大值要等于次大值,例如1,3,5,5这样。对于第二种情况,就是最大值要比次大值大,最小值要等于次小值,例如2,2,5,7这样。我们先把输入的数组转成字符串,然后进行字符串翻转。对于每一个查询,我们写一个for循环来枚举输入的字符串是否以查询为开头,如果是的话,就保存一下最小数值作为答案。我们把输入的字符串进行翻转,然后每三位加一个逗号,最后输出的时候再翻转回来。字符串翻转,暴力枚举,函数定义。[NOIP2017]图书管理员。字符串翻转,字符串遍历。

2025-10-11 13:03:04 158

原创 noi-9月23日作业

我们定义一个a数组来记录每个页面能够到达的页面,vis数组来记录点击两次能够到达的页面。vis[i][j]代表点击i次j是否能够到达。我们先定义四个数组,分别记录每个地毯的左下角的x坐标,左下角的y坐标,在x坐标的长度,在y坐标的长度。我们用一个数组p来记录每只青蛙在的位置,p[i]代表编号为i的青蛙在a数组的位置。我们按照题目的意思模拟,每次找到最大的id并输出,然后进行更新操作。因为数据范围很小,所以我们按照题目的意思简单模拟一下。一维数组,二维数组,小模拟。while循环,小模拟。

2025-09-24 16:48:43 342

原创 课后作业-2025-09-21

我们枚举矩形的左上角的顶点(i,j)和右下角的顶点的位置(k,p),然后我们统计一下这个矩形里面萝卜的个数,同时呢这个矩形的面积为(k-i+1)*(p-j+1)按照题目的意思,如果cnt[i]不等于1,那么i这位同学就是调皮的同学。我们从1到n枚举,先通过to_string函数获得整数i的字符串s,接着获得s的反转字符串t,然后判断s是否和t相等。我们先把输入保存到二维数组a,然后我们得到总和最大的列,接着找到该列最大的值和最大值的个数。字符串,length()函数来获得字符串的长度,遍历字符串。

2025-09-21 18:28:38 394

原创 洛谷典题-P1205 [USACO1.2] 方块转换 Transformations

P1205 [USACO1.2] 方块转换 Transformations。我们按照题目的意思进行一个个模拟就行。二维数组,for循环,简单模拟。

2025-09-20 14:06:13 233

原创 noi-9月16日作业

我们定义一个a数组,a[i][j](j>=1&&j<=3)代表第i名同学j课程的分数,a[i][4]代表第i名同学三门课程的总分。我们按照题目进行模拟,先把输入保存到a数组,然后使用一个双重for循环来计算每只鱼前面有多少不如它可爱的鱼。要说难,其实也不难,就只需要按照题目的意思进行模拟就行。我们按照题目进行模拟,使用一个while循环来一直模拟操作,直到n为1的时候退出循环,最后反向输出就行。我们按照题目写一个三维for循环进行模拟就行,ans[i]代表第i等奖的个数(0等奖代表特等奖)。

2025-09-17 11:01:57 207

原创 课后作业-2025-09-14

mx[i]代表a数组第i行的最大值,mn[i]代表第i列的最小值。接着我们通过双重for循环来判断a[i][j]==mx[i]&&a[i][j]==mn[j]。我们先找到第一个大于x的a[i],然后输出a[j](其中,j<i),然后再输出x,接着输出a[j](j>=i&&j<=n)。我们写一个for循环来输入n个数,用mx来保存输入的最大值,mn来保存输入的最小值。输出的时候先输出第一列,再输出第二列,再输出第三列,后面依次,直到输出第m列。小A的年龄等于爸爸的年龄减去b,奶奶的年龄等于爸爸的年龄加上c。

2025-09-14 15:34:10 466

原创 noi-9月9日作业

否则,我们先统计第一行和最后一行的第二列到倒数第二列的和,再统计第一列和最后一列的第二行到倒数第二行的和。最后我们再把漏掉的四个角的值相加,也就是加上a[1][1],a[1][m],a[n][1],a[n][m]。第三行:我们发现,如果x+1,那么y也会+1,如果x-1,那么y也会-1。最后 双层for循环 从左上向右下遍历。我们先定义一个二维数组a来存放输入的数据,然后再定义一个一维数组c来暂存a[x]这一行的数据,接着把a[y]这一行的数据赋值给a[x]这一行,最后再把c数组赋值给a[y]这一行。

2025-09-10 20:06:54 278

原创 noi-8月14日作业

解法一:我们使用整数取余和整数除法从低位到高位获得输入数字的每一位的数字。解法二:我们直接定于一个字符串变量,然后从右到左输出就行。我们按照题目,写一个for循环来模拟一下。我们按照题目,写一个for循环来模拟一下。string变量,整数除法,整数取余。写一个for循环来模拟一下。for循环,double。for循环,double。1.5编程基础之循环控制。1.5编程基础之循环控制。1.5编程基础之循环控制。1.5编程基础之循环控制。

2025-09-10 11:56:34 189

原创 noi-8月15日作业

2.判断数a是否是质数:循环变量i从2开始循环到sqrt(a),若存在a能整除的数字(即a的因数),那么a不是质数。我们定义一个变量flag表示发金币的个数,变量last表示上次不同的金币的个数,cnt表示当前金币的个数还能发几天。总共分成两种情况,一种是实心的,另一种是空心的(个人认为看作二维数组会比较清晰)用一个for循环来计算L到R每个数中包含的2的个数。这道题主要考的是嵌套循环(到二维数组天天用的东西)。1.5编程基础之循环控制。1.5编程基础之循环控制。1.5编程基础之循环控制。

2025-09-10 11:43:28 162

原创 noi-8月16日作业

3年后本息和:m ( 1 + r / 100 ) ^2 + m ( 1 + r / 100 ) ^2 ∗ ( r / 100 ) = m ( 1 + r / 100 ) ^3。2年后本息和:m ( 1 + r / 100 ) + m ( 1 + r / 100 ) ∗ ( r / 100 ) = m ( 1 + r / 100 ) ^2。否则,当前整数n是奇数,依次输出n、"*3+1="、n*3+1和回车,令n=n*3+1;→ 如果当前整数n是偶数,依次输出n、"/2="、n/2和回车,令n=n/2;

2025-09-09 14:58:22 370

原创 noi-8月18日作业

150万,那么第二年的价格就是150+150*(k/100)=180,也就是说第二年的价格是180万,同理,第三年的价格是180+180*(k/100)=180+36=216万。那么我们按照题目的意思,计算从第一年到第20年,每一年的已经拥有的总工资和当时的房价,如果这一年拥有的总工资大于等于当时的房价,那么就可以买房。有n个病人,刚开始的药物数量是m,那么我们写一个for循环从第1到第n个病人病人开始遍历,如果第i个病人需要的数量小于剩下的数量那么答案加一,否则剩下的数量再减去这个病人需要的数量。

2025-09-09 13:48:19 251

原创 课后作业-2025-09-07

对于数量为奇数的糖果堆,我们先统计一下有几堆糖果堆的数量是奇数。如果数量是偶数的话,我们直接加到答案上面就行,如果是奇数的话,那么把奇数堆的糖果堆总和加起来并减去数量最小的糖果堆,就是又能拿走的数量,我们把它加到答案上面。最后我们再把漏掉的四个角的值相加,也就是加上a[1][1],a[1][m],a[n][1],a[n][m]。我们先定义一个二维数组a来存放输入的数据,然后再定义一个一维数组c来暂存a[x]这一行的数据,接着把a[y]这一行的数据赋值给a[x]这一行,最后再把c数组赋值给a[y]这一行。

2025-09-07 20:35:06 766

原创 noi-8月19日作业

每开始一个新的战斗期的时候,先算出来需要的最少能力元素,如果当前拥有的能量元素的个数小于需要的,则结束循环。:我们先判断m是否是19的倍数,然后再从低位到高位依次获得m的每个位数上面的数字,判断3的个数是否等于输入的次数。:我们先求出所有数的阶乘。:我们先读取输入到数组中,然后使用reverse函数对使用进行逆序。:while循环,整数除法的向上取整,整数除法的向下取整。:整数取余,if语句判断,while循环。:reverse函数的使用。:1.5编程基础之循环控制。:1.5编程基础之循环控制。

2025-09-06 16:50:23 246

原创 noi-8月20日作业

我们定义a[i]如果等于1,则代表第i盏灯是开着的,a[i]=0,则代表第i盏灯是关闭的。:我们先读取10个苹果的高度和手能够到的高度。陶陶能够到的最大高度=手能够到的高度+凳子的高度,那么所以高度小于等于陶陶能够到的最大高度的苹果,陶陶都能够到。:我们定义一个差分数组a,a[i]的值就代表i这个位置被区域覆盖的次数。如果a[i]等于0,则代表i这个位置的树还在。:for循环,标准输入,标准输出,if判断语句。:整数的倍数,for循环,模拟。:1.6编程基础之一维数组。:1.6编程基础之一维数组。

2025-09-06 16:25:56 226

原创 noi-8月21日作业

用一维数组来模拟循环链表。pre[i]表示指向编号为i的猴子的猴子的编号,ne[i]表示编号为i的猴子指向的下一个猴子的编号。然后我们根据题意来模拟就行。:我们先用读取字符串的方式来读取输入,然后我们用一维数组来模拟整数加法,当然了输出的时候不要忘记省略掉前导零。:循环链表,模拟,while循环。:3.2数据结构之指针和链表。:用一维数组来模型整数加法。:1.6编程基础之一维数组。

2025-09-06 16:01:31 206

原创 noi-8月23日作业

先遍历一遍a数组,对相邻两个数的差值取绝对值并保存到vector里面,然后对绝对值从小到大排序,最后遍历一遍判断是否符号条件。:因为n很小,所以我们先得到所有周期内小A和小B的决策。:先把输入的n个数保存到a数组,然后遍历一遍a数组,判断当前遍历的数是否和指定的数相等,相等则答案加一。:vector的使用,vector排序,取绝对值函数的使用,一维数组。:for循环,一维数组,格式化输出,if-else判断语句。:一维数组,for循环,if-else判断语句。:1.6编程基础之一维数组。

2025-09-05 21:26:52 194

原创 noi-6月15日作业

先定义三个整型变量a、b和c,因为是求(a+b)*c,所以我们把a和b加起来之后再乘以c,最后赋值给ans并输出就行。定义长整型变量,减法运算符,加法运算符,除法运算符,除法向上取整,标准输入,标准输出,括号运算符。定义整型变量,加法运算符,标准输入,标准输出,赋值运算符,乘法运算符,括号。定义整型变量,加法运算符,标准输入,标准输出,赋值运算符,除法运算符,括号。定义整型变量,除法运算符,标准输入,标准输出,取余运算符,括号运算符。定义两个整型变量,加法运算符,标准输入,标准输出,赋值运算符。

2025-09-05 19:45:56 286

原创 LeetCode面试经典150题-每日五题

题解:枚举公共前缀的长度,然后判断就行,因为字符串数组的大小和字符串的长度很小,所以时间复杂度不高。题解:把输入的前后空格去掉,然后使用' '来分割单词就行。题解:直接按照题解模拟一下就行。题解:直接按照题目模拟就行。题解:按照题意模拟就行。

2025-07-30 12:46:42 133

原创 LeetCode面试经典150题-每日五题

题解:pre[i]=nums[0]*nums[1]*nums[2]*....*nums[i]题解:我们枚举起点,然后使用st表来记录一下最小值就行。题解:分别从左和右遍历一遍就行,对于每个位置取最大值。题解:使用变长数组来模拟就行。题解:直接枚举篇数就行。

2025-07-27 10:43:02 128

原创 LeetCode面试经典150题-每日五题

题解:假设我们要达到位置pos,那么我们前一步只能从前面的某个位置i(i+nums[i]>=pos)跳过来,为了求到达位置pos的最小值,我们需要求前面所有能到达位置pos的最小值,那么这就需要线段数来维护了。题解:我们假设一个不递减序列是一段“上坡”的话,那么这个数组一定是由连续的多个“上坡”组成,我们每次用一个“上坡”的最大值减去一个“上坡”的最小值就是答案。dp[j]=min(j->n)+1,其中j=min(dp[k]),其中nums[k]+k==j。题解:每次维护能到达的最大值就行。

2025-07-26 11:28:20 183

原创 LeetCode面试经典150题-每日五题

题解:因为数组是有序的,如果元素相同的话,那么它们的位置也是连续的。所以我们一段一段地找相同元素,用一个指针不断地往前移动。题解:我们先用nums2的元素覆盖掉nums1后面的无效元素。然后对nums1进行排序就行。题解:直接遍历数组一遍找答案就行,因为题目说有答案,那么根据雀巢定理必定只有一个答案。题解:直接调用unique()函数和erase()函数就行。题解:简单模拟一下就行。

2025-07-25 16:07:04 133

空空如也

空空如也

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

TA关注的人

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