首先若存在多个连通块,那么答案显然是$+\infty$。

否则以$m$为根,每棵子树的根节点都最多只能放一个金币,且这些子树之间互不干扰。

对于一棵父亲为$m$的子树,最优方案下一定可以将子树剖分成若干条祖先到孙子的链,每条链中每个点$x$往上贡献$\lfloor\frac{v[x]}{2}\rfloor$个金币,且不能贡献到其它链上去,因此一条有$k$个点的链最多可以放$2^k-1$个金币。

设$f[i][j]$表示考虑$i$的子树,$i$所在链里有$j$个点时最多能放的金币数,枚举链的接法转移即可。

时间复杂度$O(n^2)$。

#include<cstdio>
typedef long long ll;
const int N=70;
const ll inf=1LL<<50;
int n,m,i,j,ed,g[N],v[N<<1],nxt[N<<1];char s[N];ll p[N],f[N][N],h[N],ans;
inline void add(int x,int y){v[++ed]=y;nxt[ed]=g[x];g[x]=ed;}
inline void up(ll&a,ll b){if(b>inf)b=inf;if(a<b)a=b;
}
void dfs(int x,int y){int i,j,k,u;for(i=0;i<=n;i++)f[x][i]=-1;f[x][1]=0;for(i=g[x];i;i=nxt[i]){u=v[i];if(u==y)continue;dfs(u,x);for(j=0;j<=n;j++)h[j]=-1;ll tmp=0;for(j=1;j<=n;j++)if(~f[x][j]){up(h[j],f[x][j]+f[u][0]);up(tmp,f[x][j]+p[j-1]);}for(j=1;j<n;j++)if(~f[u][j])up(h[j+1],f[u][j]+tmp);for(j=0;j<=n;j++)f[x][j]=h[j];}for(i=1;i<=n;i++)if(~f[x][i])up(f[x][0],f[x][i]+p[i]);
}
int main(){for(p[0]=i=1;i<N;i++)up(p[i],p[i-1]*2);for(i=0;i<N;i++)p[i]--;while(~scanf("%d%d",&n,&m)){for(i=1;i<=n;i++)g[i]=0;for(ed=0,i=1;i<=n;i++){scanf("%s",s+1);for(j=1;j<=n;j++)if(s[j]=='Y')add(i,j);}if(ed/2!=n-1){puts("-1");continue;}ans=0;for(i=g[m];i;i=nxt[i]){dfs(v[i],m);up(ans,ans+f[v[i]][0]);}if(ans>2000000000)ans=-1;printf("%lld\n",ans);}return 0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/9515462.html

BZOJ2681 : 玩游戏2相关推荐

  1. 可以打游戏的计算机,还在用笔记本玩游戏?台式机才能给你极致享受

    [PConline 游戏爆测]随着笔记本的性能越来越好,玩家对于游戏本的需求也越来越高了,再加上购买游戏笔记本并不需要额外购买显示器,就能享受到高刷新率高色域的屏幕,让玩家对于游戏台式机就更加不感兴趣 ...

  2. 套娃成功!在《我的世界》里运行Win95、玩游戏,软件和教程现已公开

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI <我的世界>(MineCraft)真是一款高自由度的神奇游戏,几乎每隔几天都会有大神用它实现一些奇妙的创意. 最近有一个叫uD ...

  3. 这款开源测试神器,圆了我玩游戏不用动手的梦想

    一天我在公司用手机看游戏直播,同事问我在玩什么游戏?我和他说在看直播,他恍然大悟:原来如此,我还纳闷你玩游戏,咋不用动手呢....一语惊醒梦中人:玩游戏不用动手,怎样才能做到玩游戏不用手呢?我要去 G ...

  4. 7岁自学微积分,31岁获得菲尔兹奖,智商230,也曾因为玩游戏耽误学业!

    他智商 230,超过霍金.爱因斯坦.2 岁便可以通过搭建积木教其他大孩子算数,他却说自己是看<芝麻街>自学的.7 岁开始自学微积分.12 岁参加数学奥林匹克竞赛斩获金牌,记录至今无人打破. ...

  5. “意念打字”速度接近常人手机聊天,专家:这比马斯克的“猴子玩游戏”难多了 | Nature封面...

    来源:AI科技评论本文约3400字,建议阅读7分钟将意念控制走进现实! 5月12日,<Nature>发布最新一期封面研究:斯坦福大学的研究人员开发了一项新的脑机接口技术,能够使瘫痪患者直接 ...

  6. 妙啊,边玩游戏边学强化学习

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 桃良 发自 凹非寺 来自 | 量子位 学习的枯燥似乎有种魔力,让人无法提起干劲. 看着 ...

  7. 用脑电波玩游戏,这款VR体验逆天了

    用脑电波和心跳来控制游戏,这不是科幻剧而是VR体验. 你能想象有一天你可以用你的脑电波和心跳来玩游戏吗?这不是科幻剧里的情节,而是实打实的VR游戏体验.最近,英国特效工作室The Mill开启了一个新 ...

  8. 在通知栏上玩游戏,Steve iOS 游戏实现思路

    在通知栏上玩游戏,Steve iOS 游戏实现思路 最近有一款游戏特别的火爆,叫做Steve ,一种可以在通知中心直接玩的游戏.作者的脑洞也是非常的大,实在让人佩服.其实实现起来也简单,就是用到了iO ...

  9. 如何配置一台计算机预计3500元,玩游戏用的电脑主机应该怎么配置?3500元组装游戏电脑主机配置推荐...

    本文转自:http://www.dn010.com/peizhi/950.html 玩游戏用的电脑主机应该怎么配置?喜欢玩游戏的朋友都想配置一台游戏电脑,今天电脑组装知识网给大家带来3500元组装游戏 ...

  10. 核显也能玩游戏,OS X Yosemite优化指南

    第一招:关闭磨砂玻璃效果 别看这个磨砂玻璃效果不起眼,但是资源占用可不低,而且很多游戏窗口化之后对这个磨砂支持明显有问题-- 关闭方法: 系统偏好设置-〉辅助功能-〉减少透明度,打勾 第二招:干掉当前 ...

最新文章

  1. 2022-2028年中国帘子布行业市场研究及前瞻分析报告
  2. 有名内部类 匿名内部类
  3. Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法
  4. Android 内存溢出解决方案(OOM) 整理总结
  5. 常用递归结构数据表,返会指点节点,跟其子节点的操作
  6. python结束进程树_【python爬虫】线程进程
  7. 如果不是没有钱,谁想测3个重复?
  8. 眨眼检测计算机不精确,基于OpenCV和Python错误的眨眼检测
  9. Eclipse汉化插件
  10. 从零学ELK系列(十一):SpringBoot项目接入ELK超级版(超详细图文教程)
  11. FlyMcu开始连接一直未接收到的解决方案
  12. multisim中pwl_Multisim 14电路设计与仿真
  13. Linux 录屏及制作GIF
  14. 原版Caffe在Windows10 VS2015 python3.7 CPU版本 详细安装笔记 BVLC caffe
  15. LPC1768 Flash 存储器加速模块
  16. Qt 利用海康摄像头的ISAPI协议进行抓图等操作
  17. 小程序图表wx-chart
  18. 【2014最新】iOS App 提交上架store 详细流程
  19. 基于某知名招聘网站的上海财务岗位数据分析(含excel可视化)
  20. 玫瑰编程--python

热门文章

  1. 基于Cocos2d-x开发guardCarrot--3 《保卫萝卜2》主页面开发(仅使用Cocos2d-x)
  2. C语言实现任意两种进制之间互相转换
  3. # 每天阅读一个 npm 模块(7)- delegates
  4. linux设备/驱动的注册
  5. CSUOJ 1111 三家人
  6. macOS 运行react项目
  7. 《Nmap渗透测试指南》—第7章7.10节扫描Web漏洞
  8. 深入理解分布式事务(XA及rocketmq事务)
  9. 京条计划,今日头条不仅是京东的又一流量入口
  10. SQLServer · 特性分析 · SQL Server 2012的分析函数未必都理解透了(2)