传送门 :
思路看完这道题,感觉和上司的舞会同理
状态表示 f [ i ] [ 2 ] f[i][2] f[i][2] 以当前 i i i为根的子树中
- 1 1 1 ,设置哨兵, 那么子树既可以设置 也 可以不设置
- 0 0 0 , 不设置哨兵, 那么子树必须设置
因此状态转移方程 : f [ i ] [ 0 ] = f [ i ] [ 0 ] + f [ j ] [ 1 ] f[i][0] = f[i][0] + f[j][1] f[i][0]=f[i][0]+f[j][1] f [ i ] [ 1 ] = f [ i ] [ 1 ] + m i n ( f [ j ] [ 0 ] , f [ j ] [ 1 ] ) f[i][1] = f[i][1] + min(f[j][0],f[j][1]) f[i][1]=f[i][1]+min(f[j][0],f[j][1])
Mycodemap mp;
const int N = 1550;
int n;
bool st[N];
int dp[N][2];
void dfs(int u,vector g[]){
dp[u][0] = 0 ;
dp[u][1] = 1;
for(auto j : g[u]){
dfs(j,g);
dp[u][0] += dp[j][1];
dp[u][1] +=min(dp[j][0],dp[j][1]);
}
}
void solve()
{
vector g[n];
memset(st,0,sizeof st);
for(int i = 0 ;i>b;
g[a].pb(b);
st[b] = 1;//不是根节点
}
}
int root = 0 ;
while(st[root]) root++;
dfs(root,g);
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?