笔记
魔莫摸墨
好好学习,挣大钱!!
展开
-
dp最长上升(下降)子序列
dp求最长上升(下降)子序列原创 2022-07-21 21:23:14 · 131 阅读 · 0 评论 -
dp最长公共子序列详细版本(LCS)
最长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。上面的解释是百度给出的,我再用白话解释一下,其实也就是给出几个不同的字符串(一般是两个),然后求它们的公共子序列,可以不连续。举个例子,字符串algorithms和alchemist(为了方便观察,LCS我用红色加粗表示)的LCS即alhms。...原创 2022-07-21 21:00:12 · 539 阅读 · 0 评论 -
综合能力测评系统
这是我在大一和同伴们一起做的一个实训项目(主要是进行小学生的加减乘除等一系列数学操作的),是东软这个公司的。如果你正在做相关相似的项目,可以借鉴一下。(因为我自己做这个项目时,没有找到相似的可以借鉴的文章,所以写下这篇文章希望能带给你帮助!)...原创 2022-07-10 23:36:42 · 863 阅读 · 0 评论 -
数字金字塔问题(dfs、动态规划解决)
题目:输入:输入n,表示有n行,接下来n行,每行数如 i (1<=i<=n) 个数字。输出:输出为一行,输出计算结果。输入样例 1573 58 1 02 7 8 44 5 2 6 9输出样例 130方法一:搜索DFS问题要求从最高点走到最低点的路径的最大的权值之和,起点和终点明确,可以考虑用dfs来解决。设计好dfs函数 dfs(int x,int y,intnum) ,其中num表示坐标(1,1)到坐标(x,y)的数值最大和。.原创 2022-04-05 16:48:22 · 1978 阅读 · 0 评论 -
冒泡排序、快速排序、归并排序(纯板子)
冒泡排序://冒泡 #include <stdio.h>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int N=1e5+24;ll a[N];int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%lld",&a[i]原创 2022-03-06 19:42:51 · 240 阅读 · 0 评论 -
统计字符串中各类字符的个数
题目:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。输入一行字符。输出统计每种字符的个数值。样例输入:aklsjflj123 sadf918u324 asdf91u32oasdf/.';123样例输出:23 16 2 4讲解:对于这种类型的题,我觉得就是对字母、数字、空格、其他字符条件的的判断(后面代码注释中有提到),另一个难点就是空格的计算,如果开数组,可能无法计算到空格,所以我采用的是getchar()输入一个字符,统计一个字符的方法。代码(希望好好看看里面的注原创 2022-03-05 20:53:49 · 6216 阅读 · 2 评论 -
BFS广搜解决迷宫问题
//BFS广搜解决迷宫问题 #include <iostream>#include <algorithm>#include <queue>#include <string.h>using namespace std;typedef long long ll;const int N=1024;/*5 4 1 1 2 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1 1 21 1 4 3案例 */int dx[4].原创 2022-02-16 23:22:17 · 259 阅读 · 0 评论 -
沙漏(打印沙漏)
所谓沙漏,即我们通过一个特殊符号打印出一个沙漏形状的东西。而这个沙漏,它每行符号的个数都为奇数,每行中心符号对齐,相邻两排符号个数相差2,符号数先每行减少2个,减到只剩1个时,再每行增加2个,对应首尾符号数相等。例题:输入:输入一个数字n,和一个特殊符号,n表示提供的特殊符号个数输出:输出特殊符号数能打印的最大沙漏,最输出剩余的特殊符号数例如:题解:首先,我们要明确给出的n个符号数中组成沙漏的最多数目及行数,因为我们知道沙漏是一个前后对称的图形,且相邻两行的数目差为2,此时,我们就.原创 2021-11-25 19:16:45 · 5253 阅读 · 4 评论 -
高精度减法
因为高精度减法和加法是相通的,解析也是相似的,那啥,加法我已经写了,我太懒了,大家可以去看我的上上篇博客高精度加法解析,看了即懂减法了,我先奉上我的减法代码哈!!#include <bits/stdc++.h>using namespace std;char c1[500],c2[500],c[500];int a[500],b[500],n[50];int main(){ cin>>c1>>c2; //如果c1、c2相同,就直接输出0 if(st原创 2021-11-24 22:38:41 · 210 阅读 · 0 评论 -
进制转换(任意进制)
题目:输入两个数n,m,n为十进制的数,将n转换成m进制题解:相信大家都知道怎么用数学方法算出十进制转换成其他进制,而对于怎么用代码把它敲出来,其实思路都是相同的,对于n,我们让它对m取余,将每次取余的结果存在一个数组里,最后再把它倒序输出,既然要取很多次余,就要用到循环,每次循环n都要被m整除一次,直到n的值变为零,来看看代码吧。#include <stdio.h>char c[24]="0123456789ABCDEF";int a[1005];int main(){ i原创 2021-11-23 17:42:56 · 815 阅读 · 0 评论 -
高精度加法
怎么说呢,在学会高精度加法之前,我觉得它巨难无比,学会了就真的觉得这是道小学生都会的题,好了,现在就让本大学生来教你加法吧!!讲解:高精度它最为麻烦的一点就是这个数字太大了,严重超出了int、long long的范围,其实解决它也很容易,我先举个例子,对于123+45=168,我们小学老师是怎么教我们得呢?是不是让个位的3和5相加,十位的2和4相加,百位的1和0相加,结果就为168,如果个位相加的值超过了10,就向前进一位。看完这个例子,脑海里是不是有点感悟了,既然高精度加法中两个数都太大了,就把它原创 2021-11-19 23:41:44 · 171 阅读 · 0 评论 -
如何将一串数字从小到大输出(输出该数字原本的数字编号)
咳咳!本小白已经是写过8篇博客、码龄53天的大佬了(手动狗头),所以我还是深知一篇博客标题的重要性的,所以为了骗你们进来看我的博客,我还是每天都在好好想标题哦。好了,来看看今天的知识点吧!先提问,如果现在给你一串乱序的数字,让你输出从小到大排号的数字的原本的数字编号(注意,不是让你输出这串从小到大排好的数字哦),例如输入:123 23 4 56 7890 输出:3 2 4 1 5对于原先的123,23,4,56,7890这串数字我们知道从小到大排好后为4,2...原创 2021-11-18 23:21:09 · 2517 阅读 · 0 评论 -
快速幂+差分的综合用法
其实是做了一道同时融合了快速幂与差分两个知识点的题,就想发一篇博客,使我和看到这篇博客的你都能把这两个知识点掌握扎实,就废话少说,直接看题吧!!例题:对于一个元素全部是1的数列,对这个长度为n的数列做一系列操作之后,再求这个数列的最大公约数,操作如下:首先会找到一个操作的初始位置l,再找到一个操作的终止位置r,最后,给一个操作数x,然后,将数列中l到r的数据都乘上x(即:对于l<=i<=r,都会做操作a[i] = a[i] *x),为了防止数据过大x只会取2或者3,要进行m次操作。(...原创 2021-11-17 00:20:09 · 284 阅读 · 0 评论 -
求回文数+判断回文数是否为素数
又到了每日水博客的时间,今天本来打算写一道(我觉得)巨难的题的,可是我太笨了,今天还没学会,只有等我明天继续学会了再写了。好了,言归正传,我们来看看怎么求回文数吧,这可能只是一个小知识点,但我在考试时没有把它吃透,就觉得它巨难,我们来看看吧。回文数:就是一个对称的数,例如123的回文数即为12321,520的回文数即为52025,先用数学来解释一下12321=123*10^2+2*10^1+1*10^0,52025=520*10^2+2*10^1+5*10^0,这样看了是否有点想法了呢,这也是我做题的第原创 2021-11-15 22:18:44 · 1168 阅读 · 0 评论 -
前缀和+差分的简单用法
本来今天只打算写差分的,但是感觉学了前缀和之后再学差分会容易一点,希望本小白今天的讲解能让你轻松get到它的用法哈~~还是用我习惯的用例题引入讲解法(一)前缀和例题现在给你一个长度为n的数组,进行m次操作,每次操作都要求出[l,r]区间内所有数的和。输入:第一行先输入n和m分别表示数组大小以及操作次数 第二行,输入数组内的每一个数 接下来m行输入l、和r表示区间输出:分别l到r区间内的和一般解法:(就是简单的暴力解法)#include &...原创 2021-11-13 23:51:56 · 710 阅读 · 0 评论 -
英文字母、单词大小写转换
感觉没啥讲的,就写个例题直接看吧题目:输入一串字母 输出各字母相对的大小写例如输入ASDFghj 输出asdfGHJinclude <stdio.h>char c[1010];// char c[1010]放在 int main()前面 int main(){ scanf("%s",&c);//%s对应字符串 for(int i=0;c[i]!='\0';i++){// if(c[i]>='a'&&c[i]<='...原创 2021-11-13 00:16:31 · 724 阅读 · 0 评论 -
快速幂取模简单用法
关于快速幂的用法本小白还是思索了挺久的(因为我不太聪明哈~),但是学会了就觉得挺好理解的。下面我用一道例题来简单讲一下它的用法,希望能帮你轻松get到!!例题:(快速幂的一般出题方式都差不多的)给你两个数n和m,让你求n的m次方对a取模的结果输入 输入两个数n和m,再输入a输出 输出n的m对a取模的结果一般解法(可能没学快速幂的小小白的第一解法)#include <bits/stdc++.h>using namespace std;typedef long lo..原创 2021-11-12 11:35:58 · 602 阅读 · 0 评论 -
strlen()函数的简单用法+例题字符倒序输出
解释:strlen()是求字符串有效长度的一个函数,是不包含结尾的'/0'的长度我先列出一小串代码验证一下哈#include <bits/stdc++.h>using namespace std;int main(){ char a[]="hjhjb"; int len=strlen(a); cout<<len; return 0;}输出的值即为5列题:现在要给你一个字符数组,请你将它倒序输出#include <bits/stdc++.原创 2021-11-10 23:26:15 · 1323 阅读 · 0 评论 -
C++中bool 类型基础用法+回文数
用法:bool与int、double是相似的类型,只不过bool的值只有ture(真/1)和false(假/0)两种情况,非零即为ture,零为false.下面我用一串代码简单验证一下#include <iostream>using namespace std;int main(){ bool a= true; cout<<a<<endl;return 0;}输出结果即为1例题:1−N中有多少个整数的平方在M进制下为回文数.原创 2021-11-09 23:48:59 · 4779 阅读 · 0 评论 -
switch case的简单用法
switch (控制表达式){case 常量:printf(“输入内容”);break;case 常量:printf(“输入内容”);break;……default:printf(“输入内容”);}那个defaut是除所有case的其他条件哦再说几个我觉得容易犯错的点:控制表达式一定要加括号case default后要记得加冒号break后的分号(最后备注一下我现在也是个代码初学者,如果有什么问题希望大佬指出啊,写一些自己的每日所学也是为了帮助像我一样的初初学者).原创 2021-10-07 23:34:09 · 435 阅读 · 1 评论