【bzoj1864】 ZJOI2006 三色二叉树 水题
来源:互联网 发布:c语言用函数判断素数 编辑:程序博客网 时间:2024/05/17 02:18
当年ZJOI这么水呀,随便水一下,结果跪了半个小时。。。
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<iostream>#include<algorithm>#define maxn 500010using namespace std;char s[maxn];int f[maxn][3],g[maxn][3];int n,m,num,id;void dfs(){id++;if (s[id]=='0'){f[id][0]=1;f[id][1]=f[id][2]=0;g[id][0]=1;g[id][1]=g[id][2]=0;}if (s[id]=='1'){int x=id;dfs();f[x][0]=max(f[x+1][1],f[x+1][2])+1;f[x][1]=max(f[x+1][0],f[x+1][2]);f[x][2]=max(f[x+1][0],f[x+1][1]);g[x][0]=min(g[x+1][1],g[x+1][2])+1;g[x][1]=min(g[x+1][0],g[x+1][2]);g[x][2]=min(g[x+1][0],g[x+1][1]);}if (s[id]=='2'){int x=id,l,r;l=id+1;dfs();r=id+1;dfs();f[x][0]=max(f[l][1]+f[r][2],f[l][2]+f[r][1])+1;f[x][1]=max(f[l][0]+f[r][2],f[l][2]+f[r][0]);f[x][2]=max(f[l][0]+f[r][1],f[l][1]+f[r][0]);g[x][0]=min(g[l][1]+g[r][2],g[l][2]+g[r][1])+1;g[x][1]=min(g[l][0]+g[r][2],g[l][2]+g[r][0]);g[x][2]=min(g[l][0]+g[r][1],g[l][1]+g[r][0]);}}int main(){scanf("%s",s+1);dfs();printf("%d %d\n",max(f[1][0],max(f[1][1],f[1][2])),min(g[1][0],min(g[1][1],g[1][2])));return 0;}
0 0
- 【bzoj1864】 ZJOI2006 三色二叉树 水题
- bzoj1864 [Zjoi2006]三色二叉树
- [BZOJ1864][Zjoi2006]三色二叉树
- 【bzoj1864 [Zjoi2006]】三色二叉树
- bzoj1864: [Zjoi2006]三色二叉树
- bzoj1864 [Zjoi2006]三色二叉树
- BZOJ1864 [Zjoi2006]三色二叉树
- BZOJ1864 [Zjoi2006]三色二叉树 树形DP
- [BZOJ1864][Zjoi2006]三色二叉树-动态规划
- [bzoj1864][Zjoi2006]三色二叉树 树形DP
- bzoj1864 [Zjoi2006]三色二叉树 树上DP
- [bzoj1864][Zjoi2006]三色二叉树(树上dp)
- 【BZOJ1864】【ZJOI2006】三色二叉树(树形dp)
- bzoj1864 三色二叉树 树形dp
- BZOJ1864 三色二叉树 [树形DP]
- 1864: [Zjoi2006]三色二叉树
- 1864: [Zjoi2006]三色二叉树
- 【BZOJ 1864】 [Zjoi2006]三色二叉树
- 简单易懂实例说明如何设计子网掩码
- linux下tomcat启动正常,工程却无法访问
- 安装WAMPServer,提示could not execute menu item internal error
- 拼接SQL语句缺少“break”
- Redis常用命令
- 【bzoj1864】 ZJOI2006 三色二叉树 水题
- Tomcat,JBoss与JBoss Web
- django搭建微信后台——获取用户信息(7.20)
- eclipse下开发hadoop程序配置(二)
- 二叉树的存储表示与实现
- 算法(第四版)学习笔记之java实现栈和队列(链表实现)
- python 入门(一)
- win7的path原始变量值在我设置java的环境变量时不小心被删掉了
- 栈实现 阶乘