摘要: 这是一道在luogu的蓝题,在yxc大佬的讲解下AC掉了(百般调试) 首先这道题给了一个字符串矩阵,/ \表示相连哪两个节点,只可以走/ \所连接的两个点,但我们可以旋转每一个边,询问从1,1 走到 n+1,m+1的最小旋转次数。如果到不了就输出no。 首先我们要明确点的坐标和对于点四周的格子上边的 阅读全文
posted @ 2019-11-07 20:25 毛炯人 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 这个题让我们求连通块得数数量,我考虑用flood fill算法。 也就是枚举这个地图每一个点,假如符合要求就bfs与这个点联通的点,并打上标记。结束后接着枚举没有被标记并且符号要求的点。。。 1.==和=千万别写错 2.队列不要忘记head++; 3.tail++一遍就可以了 代码 #include 阅读全文
posted @ 2019-11-05 23:33 毛炯人 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 复杂度为nlogn。 算法思想为:枚举1~sqrt(n),然后把每一个数的倍数都都打上不是素数的标记。 还要特别注意0,1不是素数,打标记枚举到i*k<=n. 代码如下 阅读全文
posted @ 2019-11-01 19:08 毛炯人 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 混合背包就是01 完全 多重背包的结合体。 那么我们把他们拆成两大部分来枚举,一是01,二是完全。 而对于多重背包,我们可以n个拆成1+2+4..2^t-1<k(t为满足关系的最大整数个数)个01背包。 代码 阅读全文
posted @ 2019-10-31 00:14 毛炯人 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 这是2006北大举办的ACM的一道题。 题意为:给定景点海拔高度,队员们不去游览相同高度的景点,一开始往上爬,一但往下爬就不能再向上爬,求最多可以游览多少个景点。那么我们可以得到一个结论:以一个最高点为区分,前面的是最大上升子序列,后面的是最大下降子序列。然后我们就彻底把此传化为了LIS问题。我们开 阅读全文
posted @ 2019-10-28 00:15 毛炯人 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 这是提高组得一道动态规划题,也是学习y氏思考法的第一道题。 题意为给定一个矩阵,里面存有一些数,你从左上角开始走到右下角,另一个人从右下角开始走到左上角,使得两个人取数之和最大,当然一个数只可以取走一次并且行走规则与采花生一样。开始之前我们把问题进行一下转化,把右下角的人拿到左上角来,也让其往下走。 阅读全文
posted @ 2019-10-27 23:48 毛炯人 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 给定一个序列,如12345 56789 1011121314等,输出对其取余9的结果。 那么我们需要明白一个定理,一个序列对一个数的取余结果等于它各位之和取余那个数的结果。证明似乎是这样∑i=0n​ai​10i≡∑i=0n​ai​1i=∑i=0n​ai​(mod9)(不会)。 然后我们只需要求出每一 阅读全文
posted @ 2019-10-26 23:03 毛炯人 阅读(226) 评论(0) 推荐(0) 编辑
摘要: 这是一个区间查询最值的问题,用线段树来做。 建树的时候,这里不是求和,应该是e[k].w=min(e[k*2].w,e[k*2+1].w),所以这里要注意以下,其次是查询的时候,因为本题不用让我们修改,所以我们不需要懒标记,然后我们再去区间查询最大值 1.不要忘了写build() 2.练好看范围的能 阅读全文
posted @ 2019-10-26 19:01 毛炯人 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 这是一道关于最短路的绿题。 题目给出一些农场,每个农场有奶牛,农场与农场之间存在边,要使所有奶牛到达其中一个农场的总距离最短,输出他们到达这个农场的距离。首先我想到了最小生成树,但我发现其实并不是,因为不是图上的所有点组成一个树。然后想用单源最短路径来求解。但是遇到了一个问题,就是这个起点是多个,那 阅读全文
posted @ 2019-10-25 23:08 毛炯人 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 这是一个裸的最短路的模板题,但是它需要输出路径。 用dijkstra的话首先敲一个最短路的板子,其次开一个数组p[]来记录路径,但是怎么存呢?我们需要记录每一个点的前驱,因为如果记录后边的话,一个点可能连多个节点,但是每一个点的前驱只有一个点,所以记录每一个被压入堆的点即可,最后输出。如果用spfa 阅读全文
posted @ 2019-10-25 18:43 毛炯人 阅读(116) 评论(0) 推荐(0) 编辑