The eleven day in Changle.
在长乐的第十一天
今天讲了数位DP和树状DP
数位到现在也不怎么懂,网上还啥也找不着
树状还好,但有一题一个样例过不去
题目:结点覆盖
代码如下:
<
pre>#include
using namespace std;
int n,w[6500],f[3200][6],cnt,head[32000];
struct Edge{
int next,to;
}a[16000];
void add(int u,int v){
++cnt;
a[cnt].next=head[u];
a[cnt].to=v;
head[u]=cnt;
}
void dfs(int u,int fa){
int fl=0,mi=INT_MAX;
f[u][0]=0,f[u][1]=w[u],f[u][2]=0;
for(int i=head[u];i;i=a[i].next)
{
int v=a[i].to;
if(vfa)
{
continue;
}
dfs(v,u);
f[u][0] += min(f[v][1],f[v][2]);
f[u][1] += min(f[v][0],min(f[v][1],f[v][2]));
if(f[v][1] >n;
for(int i=1;i>x>>w[i]>>k;
for(int j=1;j>h;
add(h,x);
add(x,h);
}
}
++n;
dfs(1,0);
cout<<min(f[1][1],f[1][2]);
return 0;
}