wbw121124's blog

wbw121124的博客

二分图

若一张无向图 GG,可以将所有的点分成 22 个点集,且 22 个点集内部没有连边,那么称 GG 可以划分为一张二分图。

  • 注意:二分图的划分不一定唯一,且不一定连通。有向图在实际问题中,也可以划分一分图

二分图存在的充要条件

  • 没有奇环

二分图的判定

染色法,任意选择没有访问的点开始 dfs,并且 0,10,1 交替染色,只要出现一条边的 22 个端点颜色相同,那么就不是二分图。

阅读全文 »

区间DP

  • 是一类子问题从短到长,而不是从左到右的动态规划问题。

状态

一般是:dpi,jdp_{i,j} 表示将区间 [i,j][i,j] 的元素合并、拆分的最值、方案数。

转移

1
2
3
4
5
6
7
for (int len = 2; len <= n; len++)//这问题
for (int i = 1; i + len - 1 <= n; i++)//状态
{
int j = i + len - 1;
for (int k = i; k < j; k++)//决策点
dp[i][j] = 运算(dp[i][j], 状态转移方程);
}
阅读全文 »

区间dp(三)

洛谷P1880

P1880 [NOI1995] 石子合并 - 洛谷

石子在圆形操场的四周摆放,直接当没有环形区间dp显然会少答案。那么我们一定要这么做怎么办?少了的话可以加回来,斩环为链,数组多一倍,再区间dp。

dp0/1,i,jdp_{0/1,i,j} 表示区间合并 [i,j][i,j] 的最小/最大值。

答案为 min1i<nidp0,i,i+n1\displaystyle\min_{1\le i\lt n}^idp_{0,i,i+n-1}max1i<nidp1,i,i+n1\displaystyle\max_{1\le i\lt n}^idp_{1,i,i+n-1}

dp0,i,j=minik<jk(dp0,i,k+dp0,k+1,j+iljlal)\displaystyle dp_{0,i,j}=\min_{i\le k\lt j}^k\left(dp_{0,i,k}+dp_{0,k+1,j}+\sum_{i\le l\le j}^la_l\right)dp1,i,j=maxik<jk(dp1,i,k+dp1,k+1,j+iljlal)\displaystyle dp_{1,i,j}=\max_{i\le k\lt j}^k\left(dp_{1,i,k}+dp_{1,k+1,j}+\sum_{i\le l\le j}^la_l\right)

阅读全文 »

区间dp(二)

洛谷P1220

P1220 关路灯

请你为老张编一程序来安排关灯的顺序,使从老张开始关灯时刻算起所有灯消耗电最少(灯关掉后便不再消耗电了)。

老张关路灯像区间dp,可以发现他关路灯时不会关关过的中间加的,不然不优。

状态

dpi,j,0/1dp_{i,j,0/1} 表示区间关 [i,j][i,j] 最后达到 i/ji/j 的最少功耗。

答案

min(dp1,n,0,dp1,n,1)\min(dp_{1,n,0},dp_{1,n,1})

阅读全文 »

连通性问题

tarjan:连通性问题永远的神。

双连通与割点、割边

  • 点双连通:在无向图中,删除一个点(不是 xx 或者 yy)后,点 xx 和点 yy 仍然能够彼此到达,那么称 xxyy 是点双连通的;

  • 边双连通:在无向图中,删除一条边后,点 xx 和点 yy 仍然能够彼此到达,那么称 xxyy 是边双连通的;

  • 性质 11: 点双连通不具有传递性,但边双连通具有传递性;

阅读全文 »
0%