![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法提高课(C++实现
文章平均质量分 75
acwing算法提高课的题解整理
灯灯登登
杂学派,热衷各种技术
展开
-
AcWing 198. 反素数
思路求1-N中的反素数,实际上就是找出1-N中约数最多的数字,如果这个数字有 1个,取最小的一个。记这个数字为x,可以分解质因数x=p1c1p2c2....pncnx =p_1^{c_1}p_2^{c_2}....p_n^{c_n}x=p1c1p2c2....pncn,且p1<p2<...<pnp_1<p_2<...< p_np1<p2<...<pn。由于2∗3∗5∗7∗9∗11∗13∗17∗19∗23>231−12*3*原创 2021-06-05 18:31:45 · 91 阅读 · 0 评论 -
AcWing 499. 聪明的质监员
题目链接关于套路涉及到区间的,想都不用想,前缀和。然后再涉及一个找xxx的最小值的,想都不用想,二分。所以这题就是一道前缀和+二分的题。但是题目在说啥我好像没看明白?题意题意是这样的:个你n个产品的质量w和价值v,依次编号1-n然后再给你m个查询l,r,其中l是最左边的产品编号,r是最右边产品的编号。比如产品编号有1,2,3,4,5。如果[l,r] = [1,5]的话,就是让你从编号1-5的产品中找满足某个条件的产品出来再来解释一下Yi=∑j1∑jvjY_i= \sum_j1 \sum_jv_j原创 2021-02-05 11:11:19 · 65 阅读 · 0 评论 -
AcWing 1077. 皇宫看守
题目链接对比和acwing 323. 战略游戏这题非常类似,但又有些不同acwing 323. 战略游戏在一条道路的两个结点至少有一个是放的,而这题不一定,比如 1 / | \ 2 3 4 / | 5 6我们可以在3,4,5,6号点放,其他各点都不放。这样边1-2的两个端点都没有守卫,这就和acwing 323. 战略游戏这题不同了思路不过稍微观察可以发现,acwi原创 2021-02-04 17:41:59 · 89 阅读 · 0 评论 -
AcWing 342. 道路与航线
题目链接算法流程样例一些思考dijkstra算法不能有负权边,所以更新时只能把正权边入堆。而遇到负权边时,也能更新dist数组,但不入队列。按照拓扑序进行连通块内的dijkstra算法,保证了拓扑排列,在源点S所在的连通块后的所有连通块都能被更新时间复杂度O(mlogn),m为边的数,n为顶点数C++ 代码#include<iostream>#include<cstring>#include<queue>#include<vector&原创 2021-02-01 09:26:05 · 74 阅读 · 0 评论 -
AcWing 340. 通信线路
题目链接样例解释二分 + 最短路模型进一步解释:题目要求我们最多把k条边置为0,使得1到N号的剩余路线中,最大的花费最小那么我们可以假设一个解为x,只要egdei≤xegde_i \leq xegdei≤x的边都置为0。egdei≥xegde_i \geq xegdei≥x都置为1,这样我们只关注那些等于1的边,从1到N等于1的边个数小于等于k(即要去掉边的个数≤k\leq k≤k),那么这个解就是成立的!因此这个题是可以使用二分来做的, 图示如下到了这里,下面就是求解从1到原创 2021-01-30 16:39:03 · 63 阅读 · 0 评论 -
AcWing 168.生日蛋糕
题目链接思路大体思路记最底层为m,很容易观察得出,表面积的公式为S总=Sm层上侧面积+∑i=1m2πRiHiS_总 = S_{m层上侧面积} + \sum_{i=1}^{m}2\pi R_iH_iS总=Sm层上侧面积+i=1∑m2πRiHi而体积为V总=∑i=1mπRi2HiV_总= \sum_{i=1}^{m}\pi R_i^2H_iV总=i=1∑mπRi2Hi有了两个公式,还有题目给出的每层最小高度和最小半径,就知道可以用剪枝+暴搜来做这个题图示这个图对理解下面公式有原创 2021-01-27 02:00:21 · 112 阅读 · 0 评论 -
acwing 1291. 轻拍牛头
题目链接acwing 1291. 轻拍牛头思路如果直接用暴力解法,逐个判断其他的数是不是它的约数,这样时间复杂度是O(n2)O(n^2)O(n2),数据规模是10510^5105,会超时假设A1A_1A1是A2A_2A2的约数的话,那么A2A_2A2就是A1A_1A1的倍数,因此可以做这么一个处理,当判定某个数AkA_kAk时,我们可以把这个数字的倍数AmA_mAm全部加1,含义是,AmA_mAm的约数个数又多了1。但又考虑到可能会有很多个AkA_kAk的值是相同的,所以类似于计数原创 2021-01-22 23:51:14 · 324 阅读 · 0 评论