LINK:网络收费

还是自己没脑子. 早上思考的时候 发现树形dp不可做 然后放弃治疗了.

没有合理的转换问题的模型是我整个人最大的败笔.

暴力也值得一提 爆搜之后可以写成FFT的形式的计算贡献的方法 连图都不用建出来.

不是传统的树形dp 因为子树的状态影响之后的决策 并且从下至上的话需要状压所有点的状态 从上之下的话代价难以统计。

观察图中的这张表格 容易发现有规律的事情 当 na<nb时 有A的一定付出代价 两个A的话就两倍 一个A的话就一倍 B的话不要代价。

容易转换成上述模型 于是 这个点的颜色还是为 子树内A和B谁多的问题。

还是考虑树形dp 考虑从下至上 发现还是难以统计答案。从上之下 发现可以统计答案了 不过存在不合法 对于不合法的状态扔掉即可。

说起来这类似于爆搜 只搜路径上的点的状态 然后进行合并 由于前面的状态被搜过 后面保证所有状态也被搜了一遍 所以可以发现爆搜出了所有的状态.

合并的时候 其实类似背包。非常巧妙的题目。

const int MAXN=2100;
int n,m,maxx,ans=INF,top;
int w[MAXN][MAXN],s[MAXN],q[MAXN],vis[MAXN],a[MAXN],c[MAXN],b[MAXN][MAXN];
int f[MAXN][MAXN],sz[MAXN];//f[i][j]表示以i为根的子树内B的点数为j的最小代价.
inline int LCA(int x,int y)
{
while(x!=y)
{
x>>=1;
y>>=1;
}
return x;
}
inline void dfs(int x,int dep)
{
rep(0,sz[x],j)f[x][j]=INF;
if(dep==n)
{
f[x][0]=f[x][1]=0;
fep(top,1,i)
{
if(s[i]!=a[x])f[x][a[x]]+=w[x][q[i]];
else f[x][a[x]^1]+=w[x][q[i]];
}
f[x][a[x]^1]+=c[x];
return;
}
s[++top]=1;q[top]=x;
dfs(x<<1,dep+1);
dfs(x<<1|1,dep+1);
rep(0,sz[x<<1],i)rep(0,sz[x<<1|1],j)
if(i+j>sz[x]-i-j)f[x][i+j]=min(f[x][i+j],f[x<<1][i]+f[x<<1|1][j]);
s[top]=0,q[top]=x;
dfs(x<<1,dep+1);
dfs(x<<1|1,dep+1);
rep(0,sz[x<<1],i)rep(0,sz[x<<1|1],j)if(i+j<=sz[x]-i-j)f[x][i+j]=min(f[x][i+j],f[x<<1][i]+f[x<<1|1][j]);
--top;
}
int main()
{
freopen("1.in","r",stdin);
get(n);m=1<<n;maxx=(1<<n+1)-1;
rep(m,maxx,i)get(a[i]),sz[i]=1;
rep(m,maxx,i)get(c[i]);
rep(m,maxx,i)rep(i+1,maxx,j)get(b[i][j]);
rep(m,maxx,i)rep(i+1,maxx,j)
{
int lca=LCA(i,j);
w[i][lca]+=b[i][j];
w[j][lca]+=b[i][j];
}
fep(maxx,1,i)if((i<<1|1)<=maxx)sz[i]=sz[i<<1|1]+sz[i<<1];
dfs(1,0);rep(0,sz[1],i)ans=min(ans,f[1][i]);put(ans);return 0;
}

5.21 省选模拟赛 luogu P4297 [NOI2006]网络收费 树形dp的更多相关文章

  1. 5.21 省选模拟赛 luogu P4207 [NOI2005]月下柠檬树 解析几何 自适应辛普森积分法

    LINK:月下柠檬树 之前感觉这道题很鬼畜 实际上 也就想到辛普森积分后就很好做了. 辛普森积分法的式子不再赘述 网上多的是.值得一提的是 这道题利用辛普森积分法的话就是一个解析几何的问题 而并非计算 ...

  2. 洛谷 P4297 [NOI2006]网络收费

    P4297 [NOI2006]网络收费 题目背景 noi2006 day1t1 题目描述 网络已经成为当今世界不可或缺的一部分.每天都有数以亿计的人使用网络进行学习.科研.娱乐等活动.然而,不可忽视的 ...

  3. 【简】题解 P4297 [NOI2006]网络收费

    传送门:P4297 [NOI2006]网络收费 题目大意: 给定一棵满二叉树,每个叶节点有一个状态(0,1),任选两个叶节点,如果这两个叶节点状态相同但他们的LCA所管辖的子树中的与他们状态相同的叶节 ...

  4. [10.12模拟赛] 老大 (二分/树的直径/树形dp)

    [10.12模拟赛] 老大 题目描述 因为 OB 今年拿下 4 块金牌,学校赞助扩建劳模办公室为劳模办公室群,为了体现 OI 的特色,办公室群被设计成了树形(n 个点 n − 1 条边的无向连通图), ...

  5. 【碳硫磷模拟赛】消失的+和* (树形DP)

    好久没做过这么恶心的DP题了 题面 题面很简单,有一个计算式,由+号.*号.括号和小于10的正整数组成,现在所有的+和*(由于属于违禁词而)都被-号给和谐掉了,现在要求所有可能的原计算式的结果之和. ...

  6. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  7. @省选模拟赛03/16 - T3@ 超级树

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 一棵 k-超级树(k-SuperTree) 可按如下方法得到:取 ...

  8. 3.28 省选模拟赛 染色 LCT+线段树

    发现和SDOI2017树点涂色差不多 但是当时这道题模拟赛的时候不会写 赛后也没及时订正 所以这场模拟赛的这道题虽然秒想到了LCT和线段树但是最终还是只是打了暴力. 痛定思痛 还是要把这道题给补了. ...

  9. 省选模拟赛第四轮 B——O(n^4)->O(n^3)->O(n^2)

    一 稍微转化一下,就是找所有和原树差距不超过k的不同构树的个数 一个挺trick的想法是: 由于矩阵树定理的行列式的值是把邻接矩阵数值看做边权的图的所有生成树的边权乘积之和 那么如果把不存在于原树中的 ...

随机推荐

  1. web测试要点、方法_web端测试大全总结

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  2. Face The Right Way思维。。。

    题目再次链接 题意: 已知01序列a,求进行定长子串取反的最少操作次数,以及最少时的定长. 分析: 首先,先想一想怎么暴力吧.这样想:要保证最小,那么必然不会对同一个区间反转两次,而在k一定时,则不会 ...

  3. Fetch.AI 首席技术官Toby Simpson参与AMA活动

    感谢7月11日在YouTube上参与 Fetch.AI AMA的所有人.我们收到了大量的问题,遗憾的是我们没有时间回答其中的多数问题.如果你错过了现场AMA,你可以在下面观看全部内容: 在本文中,我们 ...

  4. day51 表格与表单

    目录 一.表格标签 二.表单标签 1 form内最重要的就是input标签,它通过type变形 2 select标签 3 textarea标签 4 重点 三.通过flask实现表单提交 四.css 1 ...

  5. Typora上传图片设置

    Typora上传图片设置 问题 使用Typora写文档时上传图片的路径默认是本地磁盘的路径,这样就导致一个问题,当写好的文档上传到blog.csdn等博客网站时,会导致图片失效无法识别的问题. 解决方 ...

  6. 02 Vue指令

    Vue指令 1.文本相关指令 <div id="app"> <!-- 插值表达式 --> <p>{{ msg }}</p> < ...

  7. 数据可视化实例(十一): 矩阵图(matplotlib,pandas)

    矩阵图 https://datawhalechina.github.io/pms50/#/chapter9/chapter9 导入所需要的库 import numpy as np # 导入numpy库 ...

  8. python 面向对象专题(二):类的空间问题、类与对象之间的关系、类与类之间的关系

    https://www.cnblogs.com/liubing8/p/11308127.html 目录 Python面向对象02/类的空间问题.类与对象之间的关系.类与类之间的关系 1. 类的空间问题 ...

  9. 循序渐进VUE+Element 前端应用开发(17)--- 菜单资源管理

    在权限管理系统中,菜单也属于权限控制的一个资源,应该直接应用于角色,和权限功能点一样,属于角色控制的一环.不同角色用户,登录系统后,出现的系统菜单是不同的.在VUE+Element 前端中,我们菜单结 ...

  10. 区间dp复习 之 tyvj 1198 矩阵连乘

    题目描述 一个\(n*m\)矩阵由\(n\)行\(m\)列共\(n*m\)个数排列而成.两个矩阵\(A\)和\(B\)可以相乘当且仅当\(A\)的列数等于\(B\)的行数.一个\(N*M\)的矩阵乘以 ...