![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
初学者
lzoi_hmh
蒟蒻一枚
展开
-
线段树基础入门详解(适用于初学者)
由于以前看多了各种博客,关于线段树的讲解总是十分冗长,因此特此作文,大概讲解基本概念及操作,适用于初学者。初次写博,多多包涵一、线段树的概念 线段树在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。(看不懂不用管,没啥用) 这个图是线段树求数组array[2, 5, 1, 4, 9, 3]的区间最小和的例子(原创 2017-07-10 16:18:58 · 577 阅读 · 0 评论 -
高精度加法入门详解
高精度加法输入两个正整数,求它们的和。 【分析】 输入两个数到两个变量中,然后用赋值语句求它们的和,输出。但是,我们知道,在C++语言中任何数据类型都有一定的表示范围。而当两个被加数很大时,上述算法显然不能求出精确解,因此我们需要寻求另外一种方法。在读小学时,我们做加法都采用竖式方法,如图1。 这样,我们方便写出两个整数相加的算法。 如果我们用数组A、B分别存储加数和被加数,用数组C存储结原创 2017-08-19 17:39:40 · 1592 阅读 · 0 评论 -
高精度减法入门详解
高精度减法输入两个正整数,求它们的差。 【算法分析】 类似加法(如果是没有学过加法的同学,参照博客高精度加法入门详解) 同样可以用竖式求减法。在做减法运算时,需要注意的是:被减数必须比减数大,同时需要处理借位。高精度减法的参考程序:#include<iostream>#include<cstdio>#include<cstring>using namespace std;int mai原创 2017-08-19 17:44:51 · 786 阅读 · 0 评论 -
高精度乘法入门详解(高精乘高精)
高精度乘法。输入两个正整数,求它们的积。【算法分析】类似加法,可以用竖式求乘法。在做乘法运算时,同样也有进位,同时对每一位进行乘法运算时,必须进行错位相加,如图3、图4。 分析c数组下标的变化规律,可以写出如下关系式:ci = c’i +c”i +…由此可见,c i跟a[i]*b[j]乘积有关,跟上次的进位有关,还跟原c i的值有关,分析下标规律,有c[i+j-1]= a[i]*b[j]+ x原创 2017-08-19 17:49:02 · 30606 阅读 · 8 评论 -
NOIP 2001普及组 装箱问题详解
这道题是01背包的经典例题核心保存状态的数组f[],f[i]表示容量为i时的最优解 两重循环,第一层枚举物品,第二层枚举所有容量,而状态转移方程的核心就是选不选择这种物品两种情况,f[i]就相当于不选,保持原来的状态;f[i-a[i]]+a[i]相当于选,就是把当前容量v-当前物品体积a[i]时的最优解加上当前物品体积原创 2017-08-13 15:37:23 · 1878 阅读 · 0 评论 -
最长公共子序列LCS C++实现
#include <iostream>#include <cstdio>#include <cstring>using namespace std;char a[1005],b[1005];int f[1005][1005];int main(){ scanf("%s",a+1); scanf("%s",b+1); int lena=strlen(a+1);原创 2017-08-27 16:39:16 · 392 阅读 · 0 评论 -
NOIP 2002普及组 过河卒详解
本文图片引用自“kcfzyhq”的博客1.分析首先我们来看看下面这个图,这个图基本表现了题目的意思:一个卒要从图的左上角A点走到右下角B点,而其中有一点C为马的位置,C与其周边马能走到的P1~P8点共9个点是不能走的,问有多少种从A走到B的方法我们可以先把这个问题当数学问题来考虑相信许多朋友以前都遇到过类似的数学问题,对于点[i,j],它的走法数等于它上方点与其左方点走法数之和(因为只能向下或向右走原创 2017-10-05 15:53:55 · 3742 阅读 · 3 评论 -
NOIP 2005普及组 采药 详解
思路简单的01背包裸题(如果不知道什么是01背包的话去搜一搜),用f[j]表示时间为j时的最优解 需要注意的是如果用一维,第二层循环内的j一定要从大到小逆推。因为当我们枚举到i,假设此时正在求解f[6],我们需要用带到上一层的f[3]的值。如果是顺序枚举的话,那么第i-1层的f[3](也就是不能取第i株草药的f[3])的值很可能已经被第i层的f[3](也就是能取第i株草药的f[3])的值所覆盖了(原创 2017-10-05 17:35:41 · 1033 阅读 · 0 评论 -
NOIP 2006普及组 明明的随机数详解
1.思路这道题就是一道桶排序,或称基数排序 算法基本思路:用数组num[i]来表示数值为i的数出现了多少次,例:若读入一数3,则num[3]++;读入一数10,则num[10]++最后从1开始循环整个num数组,把出现了1次或以上的数(也就是num值不为0的数)全部输出,输出结果正好就是按数值顺序从小到大排好序的放到这道题中,因为题目只是要求把不重复的数顺序输出,所以我们甚至不需要计算次数,只用把原创 2017-10-06 15:57:21 · 785 阅读 · 0 评论