区间修改区间查询 题目链接:YbtOJ 解题思路 区间操作,我们可以想到差分。 设差分数组为 d d d ,那么求 ∑ i = 1 n a i \sum\limits_{i=1}^na_i i=1∑nai 就可以转换为 ∑ i = 1 n ∑ j = 1 i d i \sum\limits_{i=1}^n\sum\limits_{j=1}^id_i i=1∑nj=1∑i
严格上升子序列数 题目链接:YbtOJ 解题思路 我们设 f i , j f_{i,j} fi,j 表示以 i i i 结尾,长度为 j j j 的序列数。 如果直接暴力做,那是 O ( n 3 ) O(n^3) O(n3) 的时间复杂度。 我们可以离散化,然后用树状数组维护每一种方案数的情况。 其实和逆序对挺像的说(无端感受) code #include<algori
最大半连通子图 题目链接:最大半连通子图 题目描述 解题思路 我们可以发现,任何一个半联通子图在缩点后都是一条链,所以我们可以先用 T a r j a n Tarjan Tarjan 缩点,然后用 d f s dfs dfs 找出最大的数量,再跑一边找一共有多少个。 code #include<algorithm>#include<iostream>#include<c
受欢迎的牛 题目链接:受欢迎的牛 题目描述 解题思路 我们先用 T a r j a n Tarjan Tarjan 缩点。 如果一个点没有出度,证明它是明星点。 但如果有两个点都没有出度的话,那么它们两个都无法指向,所以没有明星点。 输出找出的明星点所包括的奶牛数即可。 code #include<iostream>#include<cstdio>#include<que
有向图缩点 题目链接:有向图缩点 题目描述 解题思路 强连通分量模板,用 T a r j a n Tarjan Tarjan 算法。 code #include<iostream>#include<cstdio>#include<queue>using namespace std;queue<int> q;int n,m;int ans;int tm,tt;int
「 「 「基础算法 」 」 」 第 5 5 5章 广度搜索 ( ( (后 3 3 3题 ) ) ) 前半章 l i n k link link 目录: D.荆轲刺秦王E.电路维修F.逃离噩梦 又臭又长的 c o d e code code D . D. D. 例题 4 4 4 荆轲刺秦王 洛谷 l i n k link link 分析: 由于一本通上的数据较水 可以直
YBT高效进阶 4.6.2 洛谷P1081 开车旅行 TITLE 题目描述 小A和小B决定利用假期外出旅行,他们将想去的城市从1到n编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i的海拔高度为h_i城市i和城市j之间的距离d_{i,j},恰好是这两个城市海拔高度之差的绝对值,即 d i , j = ∣ h i − h j ∣ d_{i,j}=|h_i-