- 博客(4)
- 收藏
- 关注
原创 Tarjan算法之我见
Tarjan算法是一个神奇的算法。我们有时候会存在疑惑:Tarjan算法有什么用,是怎么来的。不得不承认,Tarjan的用途很别具风格。它主要解决的是与强连通分量有关的问题。那么什么是强连通分量?简单来说,在一定的区域内,所有的点都要相互可以到达,那么这个区域就是强连通分量。就如下图所示:这个图中,1,2,3,4这4个点均可以互相到达,那么我们就称它们为强连通分量。Tarjan算法中,我们首先一次遍历每一个点,对它们的时间戳打上标记,同时记录它们可以到达的最高的点(也就是时间戳最小的点)的.
2021-11-07 15:50:12
138
原创 P1704 寻找最优美做题曲线
点击这里膜拜一天10亿题的大神 P1704没错!你没有看错!这里的大神一天可以完成10亿题!当然,本孱弱可做不到,这一点,要膜拜就膜拜 nodgd大神吧,他可是会做体育竞赛题。~咳咳,现在进入正题~这一题在前面描述了亿大堆废话后,告诉了你要求:其实很简单,在N天中,大神有K天必须要完成题目,其余天的时候可刷可不刷。重点来了:每天的刷题量是一个定值!并且要求要严格单调递增。于是你想到了什么??~最长上升子序列~可是啊,有人会说:“有K天必须刷题,那么怎么办??”不急,分两种
2021-10-09 19:56:05
133
原创 2021-10-09 P1314 聪明的质检员
孱弱题解,请多支持这题一眼望去,就可以确定:长的非常像二分答案(别问本孱弱怎么想的)。于是乎,我们就去思考二分答案的3个要点:a.情况的单调性:不难证明,当w越大时,我们的检验值y就越小。在明白了这一点时,我们才能确定这题可以用二分答案来处理。b.二分答案的浮动方式(即当二分的情况符合条件时,我们应该怎么做):由之前的推断可知:w越大,y越小。所以,当y>s时,我们就要考虑缩小所需的y,即增大w;当y<s时,我们就要考虑增大所需的y,即减小w。这样,我们的浮动方式就考虑好了。
2021-10-09 19:08:35
259
原创 P1197 [JSOI2008]星球大战 题解
这题有着很深的背景呢……本孱弱第一次写题解,请多多支持这题最有意义的地方是:逆序思考。不断的维护摧毁后的数量,会非常困难。但是!~我们不妨去试着重建,一点一点重建。假设这些都是已经被摧毁了的,那么我们如果修复该怎么办呢?我们可以吧它周围的所有道路都重新连起来,并且通过并查集合并。话不多说,上代码。#include<bits/stdc++.h>using namespace std;#define N 400005#define M 400005 //一定要开双倍啊i
2021-09-23 20:56:46
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人