自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 3.20打卡day34

本题可以枚举所有可能的千位 a(1 到 9),十位和百位 b(0 到 9),构造数num = a*1000 + b*100 + b*10 + a,然后判断num>=n就输出。int n;cin >> n;a <= 9;

2026-03-20 22:59:34 347

原创 3.19打卡day33

本题可以用优先队列(最小堆)来模拟:把所有数放入最小堆。每次弹出两个最小的数,累加它们的和到总费用,再把和放回堆。重复直到堆中只剩一个数。int n;cin >> n;// 最小堆(默认是最大堆,用 greater 改为最小堆)i < n;cin >> x;pq.push(x);pq.pop();pq.pop();return 0;

2026-03-19 23:32:40 401

原创 3.18打卡day32

用递归或DFS都可以做。//递归//用DFS// return;cin >> N;return 0;因为好芯片数量 > 坏芯片数量,所以对任意一块好芯片,超过半数的芯片会报告它是好的int n;cin >> n;i <= n;cnt++;// 因为好芯片数量 > 坏芯片数量。

2026-03-18 16:34:48 400

原创 3.17打卡day31

给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。说明:同一条对角线是指包括两条主对角线的所有对角线,n=5时的棋盘从左上往右下有9条对角线,从右上往左下也有9条对角线。比如,棋盘为:1 1 1 11 1 1 11 1 1 11 1 1 1表示一个4*4的棋盘,所有位置都可放皇后。则可知有2种放法。

2026-03-17 15:13:23 353

原创 3.16打卡day30

本题用DFS可以做,从 1 位素数开始(2,3,5,7),逐位向后添加数字(只能是 1,3,5,7,9,因为末位不能是偶数或 5 才能保证新数可能是素数),并检查新数是否为素数。用 DFS 生成所有 T 位的纯素数,最后排序输出。i+=2) {//深度优先搜索 生成T维纯素数return;// 接下来可以添加的数字:1,3,5,7,9(因为不能是偶数或5才能继续是素数)int n;cin>>n;int T;cin>>T;//一位纯素数++i) {

2026-03-16 21:49:34 425

原创 3.15打卡day29

要先处理整数部分,然后模拟小数除法,记录位置等,思路不太清晰。用map来存储镜面的映射,然后分别判断回文和镜面字符串。//判断回文left++;right--;//建立镜面映射{'0','O'}//判断镜面字符串while (left <= right){ //镜面字符串,长度为单数的时候,最中间的那个字符也要判断进去,而回文不用判断left++;right--;string s;cout<<s;if (!

2026-03-15 23:29:53 381

原创 3.14打卡day28

肖恩和帕特里克是兄弟,他们从他们的父母那里得到了很多糖果。每一块糖具有一个正整数的价值,孩子们希望分他们得到的糖果。首先,肖恩将这些糖果分成两堆,并选择一堆给帕特里克。然后,帕特里克将尝试计算每堆的价值,其中每堆的价值是那堆糖果价值的总和,如果他觉得没有平等的价值,他将开始哭了起来。不幸的是,帕特里克太小了,所以不能正确的计算。他只会二进制无进位的加法。比如说,他想算12(二进制为1100)加5(二进制为101),他会把最右边的两位加法算正确,但是第三位会忘记进位。

2026-03-14 22:20:14 404

原创 3.13打卡day27

动态规划题,有点复杂,各种优惠还有原价,还需要更多时间思考。int num;// 优惠涉及的商品种类数// 商品编号// 对应数量int price;// 优惠价int code;int need;int price;int s;cin >> s;i < s;cin >> n;j < n;cin >> b;// 商品编号映射到 0~4i < b;

2026-03-13 23:32:05 353

原创 3.12打卡day26

明明是一家摩托车厂的老板,他的厂为了迎合市场中不同消费者的需求,会生产不同型号的摩托车,这为明明的厂带来了不小的收益。有一次,一位大客户来到明明的厂洽谈生意,他需要采购一批型号各不相同的摩托车,然后他把需要的摩托车的型号告诉了明明,接着明明就需要在他所生产的摩托车中寻找到型号匹配的,如果有则卖给那个客户,如果没有则只能对客户说抱歉了。明明忙了一个上午,终于把那个客户需要的摩托车全部配齐了,然后成功的谈成了这笔生意。

2026-03-13 00:32:39 353

原创 3.11打卡day25

定义一个count[26]数组,来存储每个字母出现的次数。都按照大写字母存储,然后将频度>0的字母频度存入新数组中并按照题目意思排序输出。int freq=0;if (a.freq!string s;//统计字符频度//存入结构体数组i < 26;++i) {//排序//输出if (!定义一个学生结构体,然后定义结构体数组stu,输入后按照成绩升序排序,然后依次输出完整信息,不难。int id;string sex;

2026-03-11 19:32:55 353

原创 3.10打卡day24

大实数加法用字符串处理,分离整数和小数部分,然后将小数和整数部分分别对齐后,进行加法运算,最后再合并整数和小数部分,去掉小数部分末尾的0。//大实数加法//分离整数和小数部分if (posA!aXiao = "";if (posB!bXiao = "";//对齐小数部分(补0到整长)//对齐整数部分(前面补0)//小数部分加法(从后往前加)i >= 0;

2026-03-10 23:46:34 360

原创 3.9打卡day23

大整数相加,要用字符串处理,从末尾开始往前加,要考虑进位。每次将a和b对应的一位分别加到sum中,然后更新进位,还要将结果存入新字符串res中,最后得到的是首尾颠倒的结果还要reverse一下。//大整数加法,用字符串//进位return res;int T;cin>>T;i <= T;cin>>A>>B;return 0;

2026-03-09 23:02:36 410

原创 3.8打卡day22

用nums数组存储分割出来的数字num,遍历字符串,分割的方法和前面有题目一模一样的。本题就是要把5来做分割。int n;cin>>n;string s;cin>>s;int num=0;num=0;} else{//处理最后一个数字//排序++i) {cout<<endl;return 0;

2026-03-08 23:00:44 461

原创 3.7打卡day21

纯粹合数,首先是合数,然后要去掉最高位,用substr直接从1取到结尾即可,要用递归一直处理依次去掉最高位后的数,直到最后只剩下一位数字,如果是合数或0,那么这个数就是纯粹合数。//质数判断i+=2) {//合数判断return!isPrime(n);//判断是否是纯粹合数if (!//去掉最高位的数,存入temp//如果剩下0,符合条件//如果剩下个位数,判断是否为合数或0//否则递归判断剩下的数int n;count++;num++;

2026-03-07 23:14:43 364

原创 3.6打卡day20

判断一个整数的十进制数是否为回文,直接转为字符串更方便;二进制的话定义一个数组来存储二进制的每一位,然后再判断是否回文。//判断十进制是否是回文数//判断二进制是否是回文数int num=n;num /= 2;遍历输入的字符串,是数字就并入num,遍历到字符就进行一次运算。string s;int res=0;int num=0;i++) {if (!res += num;num=0;

2026-03-06 23:52:27 391

原创 3.5打卡day19

用find函数直接查找subs在s中的起始位置即可。遍历整个字符串,用longestWord和maxLen来分别记录最长的单词和长度,当遇到空格的时候代表一个单词解析完毕,可以判断是否是最长;如果遇到字母那就加入到当前的单词word中,同时记录当前单词的长度len。最后不要忘记要单独处理一下最后一个单词。string s;len = 0;word = "";len ++;//处理最后一个单词。

2026-03-05 22:06:28 367

原创 3.4打卡day18

扫描字符串,如果是数字就计算存入num,然后放入数组a中,注意用一个bool变量来判断一个数字。int num=0;//处理最后一个数字cout<<endl;return 0;采用11分制(或21分制),先得目标分且领先至少2分者获胜;若平分(如10平或20平),则需连续领先2分才能取胜。程序通过循环读取每球得分,实时判断每局是否结束并记录比分,最终输出所有局次比分,直到输入结束。

2026-03-04 22:51:30 346

原创 3.3打卡day17

根据string自带的函数find_first_of()可以找出第一个加减运算符的位置,并保存其值,然后再找到等号的位置,此时就可以把两个数a和b,以及结果c都通过substr()分离解析出来,然后根据a和b计算出正确的结果,和弟弟的答案对比,从而累计正确的个数。int cnt=0;//运算符的位置//等号的位置//解析a,bif (c == "?//弟弟的答案int res=0;//正确答案。

2026-03-03 19:46:36 370

原创 3.2打卡day16

本题是要删除字符中的所有给定的某个字符,然后输出删除后的结果。首先字符串中可能包含空格,所以要用getline输入,其次,要删除的字符c也可能时空格‘ ’,而cin>>不能输入空格,要用cin.get()读入一个字符(可以是空格),一开始没考虑到这个,结果出现了错误。处理过程,只需要遍历字符串,将不等于该字符的字符都加入到新字符串res中即可。也可以用erase来删除原字符串来处理,但是要注意用erase的话,注意删除后下标的变化,因为删除后字符串长度改变,后面的元素会前移。

2026-03-02 16:29:15 577

原创 3.1打卡day15

输入字符串s后,利用find函数找到小数点‘.’的位置,若能找到,返回小数点的下标,小数位数=length-pos-1;若不能找到则返回-1,小数位数为0。十进制转n进制,方法就是除n取余,逆序取数。定义一个字符串,把余数依次加到字符串中,注意大于等于10要转换成字母,最后把字符串整体逆置即可得到正确的结果。不过也要单独判断输入的数=0的情况,输出0。if (m==0){

2026-03-01 22:44:10 646

原创 2.27打卡day14

本题需要定义方向数组dx,dy来改变方向,每次走下一步的时候先尝试走,然后判断走之后是否合法,要是不合法就转向然后重新更新下一步的正确位置。int m=0;//定义四个方向的数组,分别为 右,下,左,上//方向索引,0代表右,1代表下,...,和dx,dy一一对应//当前位置int k=1;//尝试走下一步//判断这下一步是否合法=0){x=next_x;y=next_y;i < n;++j) {

2026-02-27 23:42:56 571

原创 2.26打卡day13

本题先把输入的矩阵存入二维数组a中,然后当i>j,就是对称的元素交换一次即可,最后输出。int k=0;i < r;i < r;return 0;

2026-02-26 21:54:00 695

原创 2.25打卡day12

先把c,d,h,s存入字符串数组中,然后定义一个空的字符串数组cards,用二重for循环,每次存入一个对应字符和数字组成的字符串到cards数组中,最后再输出。i < 4;return 0;本题是典型的动态规划题目,先把输入的值都存入二维数组a中,下标统一从1开始,不然下面处理边界的时候要复杂讨论一下。

2026-02-25 19:18:59 675

原创 2.24打卡day11

先写一个判断素数的函数,然后遍历区间m到n,如果是素数,cnt就+1。int cnt=0;i <= n;return 0;本题要用到二维数组,主要的递推公式就是 triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];注意一定要先分配元素空间才能访问数组下标。先把边界的1赋值好,然后计算内部的值,j从1开始,边界处理也不会出问题。int main()

2026-02-24 16:48:28 583

原创 2.23打卡day10

要求写一个将日期增加一天的函数,函数中先判断闰年,确定每个月的天数后,将day+1,day+1可能导致month+1,month+1也可能导致year+1,逐一判断即可。主要函数的参数要加引用&,调用时直接修改原变量。重复调用n次即得出n天后的日期为多少。//判断是否为闰年//每月的天数//将日期增加一天(引用传递,直接修改原变量)29:28;day++;day=1;month++;month=1;year++;++i) {

2026-02-23 22:15:39 589

原创 2.22打卡day9

先写一个判断素数的函数,注意 i <= sqrt(x),不能落下“=”。从2到a/2循环,且取不到a/2,就不会出现重复的拆法,且两个素数相同的情况也排除了。然后判断 (isPrime(i) and isPrime(a-i)),如果满足,就加一种拆法。i+=2) { //<=,“=”不能落下,落下就出现错误,比如9int main()int T;cin>>T;int a;cin>>a;int cnt=0;i < a/2;return 0;

2026-02-22 22:14:13 548

原创 2.21打卡day8

本题要写一个函数total(n)计算1+1/2+1/3+......+1/n,就定义一个分母k,且k不断自增,sum不断累加1/k即可。int k=1;return sum;cin>>n;return 0;本题要写一个函数fact(n)计算n的阶乘,显然数n不会很大,本题不需要用大数乘法。int res=1;i <= n;return res;cin>>m>>n;

2026-02-21 22:10:36 620

原创 2.20打卡day7

先将输入的炮弹高度存入height数组,注意要输入后用push_back()存入。isLanJie数组,用于标记炮弹是否已被拦截。用二重循环,每次从第一个没被拦截的炮弹开始往后,依次标记高度严格递减的元素,每一轮cnt+1,直到所有元素都被拦截。cin>>T;int n;cin>>n;int x;i < n;int cnt=0;i < n;++i) {if (!j < n;++j) {if (!cnt++;

2026-02-21 00:10:35 557

原创 2.19打卡day6

本题的重点就是将十进制数转为base进制,方法就是除base取余,逆序取数,要注意要reverse一下。采用了字符串来处理,同样还要对字符串进行回文串判断。然后在主代码区for循环进行从2进制到10进制的枚举。//十进制转base进制,除base取余,逆序取数//反转才得到正确顺序return res;// 判断字符串是否为回文left++;right--;cin>>N>>S;int cnt=0;int m=S+1;

2026-02-19 21:35:47 550

原创 2.15打卡day5

本题将输入的数字串存入数组,然后使用 sort排序和vector中的unique函数配合,消除相邻的重复元素,将重复元素删除后输出即可。i < n;// unique 将重复元素移到末尾,返回第一个重复元素的位置//auto用于自动推断变量类型++i) {cout<<a[i];cout<<endl;return 0;

2026-02-15 21:23:27 599

原创 2.14打卡day4

把输入的数字存入数组方便实用。一开始想给数组降序排序后感觉能更容易求出最大值,但是题目要求选的数字必须是连续的,排序会破坏位置信息。采用暴力枚举法不断更新len符合范围的sum的最大值。//不能用sort排序后处理,排序会丢失位置信息,本题有位置连续这个约束条件//暴力枚举i < n;j < n;maxSum=sum;return 0;

2026-02-14 23:51:22 577

原创 2.13打卡day3

本题的不变量就是两地的距离L,找出距离L与速度d、几点钟a之间的联系,然后用暴力枚举的方法,求满足所有关系式的最小的L。L最大不超过100*24*30000=72000000,可暴力。没有想到其他简便的数学方法了。//3艘船到达港口那天的时间是几点钟int d,e,f;//3艘船的速度int L;//两地的距离//关键 同时出发,距离相等,距离=速度*时间//设某艘船的速度为d,用时为t1小时,到达港口的时间是a点钟。

2026-02-13 22:16:45 591

原创 2.12打卡day2

首先把输入的9个数字存入数组中方便处理,对于每组测试数据,都有9种剪法,全部枚举出来判断即可。每次从i处剪开,顺时针顺序为i+1,i+2,...;逆时针顺序为i,i-1,i-2,...。只需注意处理k的值确保取值是一个“环”。边取值边把该数字加入到num1或num2中去,一个for循环结束后num1就是顺时针组成的9位数,num2为逆时针,最后判断是否满足题意,满足则cnt++即可。一开始把num1和num2的赋初值语句放到了for循环之外,导致结果错误,通过调试发现错误及时改正。int main()

2026-02-12 21:37:21 681

原创 2.11打卡day1

看完题目第一反应就是定义了一个标记数组,表示该位置上的树是否已移走。把题中给出的车站区域范围中的树都依次标记“已移走”,即使区域有重复也不影响标记结果。最终用一开始树的总数减去需移走的树,就得到了马路上还剩多少棵树。i<M;j++){i<=L;return 0;约瑟夫环这类问题我自己认为还是挺难的,所以我花了比较长的时间一步步思考也做了注释。

2026-02-12 01:18:44 649

空空如也

空空如也

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

TA关注的人

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