摘要:
爬山算法是用来解决一个不规律函数的最值问题的一个算法,其基本算法是每一次向周围走一步,并比对一下是否更优,如果更优的话就更改目前的位置,如果不是的话就不进行更改。 但是爬山算法的劣势也是比较显然的,由于达到局部最优解之后就很难跳出这个区间最低点,所以很容易陷入局部最优解,盗一张图: 那么爬山算法就一 阅读全文
摘要:
对比于二分法,三分法的适用范围要略窄一些,但是并不是代表它没有用,在一些题目中还是有很大用处的。。。 三分法是用来求一个凸性函数的方法,所谓凸性函数就是一个函数在某一区间内有最大值,最大值两侧各具有单调性,并且单调性相反。 题目大意: 给出一个N次函数,保证在范围[l,r]内存在一点x,使得[l,x 阅读全文
摘要:
洛谷原创的这道题说实话真的不错。。。 题目大意: 求一个树上两个点路径所有边的异或和。 树上求和问题很显然会想到LCA吧,我们假定两个点是u和v,他们的LCA为lca(a,b) 我们维护一个dis数组,dis[i]代表从根节点到i的路径边权的异或和。 我们要求的是两点之间的异或和,我们想从做过的题型 阅读全文
摘要:
紧急集合 / 聚会 题目大意: 给出一个无向图,每一次给出图中的三个点,求离三个点距离之和最小的点。 解决方法: 倍增LCA。 首先我们两两点之间求出LCA,那么离他们距离之和最近的点就是三个点中深度最深的点,想一想为什么? 我们假设存在一个点离三个点距离之和更近且深度更浅,那么我们将它的深度往下走 阅读全文
摘要:
这个题面真的难受,看了好久才看懂。。。 题目大意: 给出一个无环图,求图中任意两点的距离(刚开始还以为是最短路。。。) 好像没有什么思路,爆搜?肯定超时,那可怎么办? 其实这道题可以用LCA来解决。。。(要不是前一题做的LCA还真想不到。。。) 首先,我们还是先找根,但是这道题可能不太好找,所以我们 阅读全文
摘要:
Nearest Common Ancestors 题目大意: 求树上两个点的LCA(最近公共祖先) 输入格式: T代表数据组数,n代表节点数目。 n-1行每行两个数a,b分别代表a是b的父节点,ab间有一条无向边。 最后一行为两个数a,b,代表求a,b的LCA。 输出格式: 对于每一组数据输出LCA 阅读全文
摘要:
莫队的一道板子题,可以说是目前看到最简单的可以用莫队的题了。 题目大意: 现有数列A1,A2,⋯,AN,Q 个询问(Li,Ri),判断ALi,ALi+1,⋯,ARi 是否互不相同。(支持离线询问) 首先,我们显然可以看到暴力是一定会超时的,因为暴力的复杂度太大:O(qn)这个直接TL 阅读全文
摘要:
一道简单题。。。 确实挺简单的,但是这道题把学过的知识点结合的特别好。。。 虽然简单但是还是比较值得去做一下的。。。 给定一个正整数n,求将其分解成若干个素数之和的方案总数。 输入输出格式 输入格式: 一行:一个正整数n 输出格式: 一行:一个整数表示方案总数 输入输出样例 输入样例#1: 复制 7 阅读全文
摘要:
作为洛谷月赛的第一题,纯暴力,但是这里面的坑实在是太多了。。。 看到题解里面各位大佬都使用起了unsigned long long,没听过的我只能祭出打表比较法了 题意简单来说就是判断一个整数写法是否正常。 看了一下数据范围,发现这个只能用字符串进行读取啊。。。 于是我们根据字符串首位可以分为以下几 阅读全文
摘要:
洛谷月赛的一道水题。。。 似乎要比第一题还要简单一点? https://www.luogu.org/problemnew/show/P5239 好吧,直接切入正题。。。 关于这道题,简单来说就是求一个式子: ∑i=1n∑j=1mCji(i>j时Cji为0) 那么最简单的方法就应该是先预处理出阶 阅读全文