codevs 访问艺术馆
2016-10-19 16:11
204 查看
/* codevs 1163 访问艺术馆 红果果的树形dp*/ #include<iostream> #include<cstdio> #include<cstring> #define maxn 210 using namespace std; int n,m,lc[maxn],rc[maxn],g[maxn][2],T,v[maxn],f[maxn][maxn*6],x,y; struct node{ int v,t,pre; }e[maxn*2]; void dfs(int now,int val){ if(val){ v[now]=val;return; } scanf("%d%d",&x,&y); lc[now]=++n;g[now][0]=x;dfs(n,y); scanf("%d%d",&x,&y); rc[now]=++n;g[now][1]=x;dfs(n,y); } void Dfs(int x){ if(lc[x]==0&&rc[x]==0){ for(int i=1;i<=T;i++) f[x][i]=min(i/5,v[x]); return; } Dfs(lc[x]);Dfs(rc[x]); for(int i=0;i<=T;i++) for(int j=0;j<=i;j++){ int s=0; if(j>=2*g[x][0])s+=f[lc[x]][j-2*g[x][0]]; if(i-j>=2*g[x][1])s+=f[rc[x]][i-j-2*g[x][1]]; f[x][i]=max(f[x][i],s); } } int main() { scanf("%d",&T);/*T-- 尼玛理解错了*/ scanf("%d%d",&x,&y); T-=x*2;if(!y)dfs(++n,0); Dfs(1); printf("%d\n",f[1][T]); return 0; }
相关文章推荐
- 访问艺术馆 codevs1163 树形dp
- [CodeVS1163]“访问”艺术馆
- 【CodeVS1163】访问艺术馆
- [codevs1163]访问艺术馆
- 【codevs1163】访问艺术馆 树形dp
- codevs1163访问艺术馆
- CODEVS 1163 访问艺术馆
- 【Codevs1163】访问艺术馆 树形dp 记忆化搜索(8/1000)
- codevs1163 访问艺术馆(树型dp)
- 【codevs1163】访问艺术馆,圣战の终焉
- codevs1163 访问艺术馆 树型数组 记忆化搜索
- [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
- Codevs 1163:访问艺术馆——题解
- VS2013 App_Code中的类访问不到 VS2013类不能访问
- vscode 保存时自动格式化出问题 解决的三种办法
- codevs 1082 线段树练习 3(区间维护)
- codevs 3027线段覆盖2
- 【日常学习】【高精快速幂】codevs1087 麦森数题解
- codevs1928 加密算法 数论[四星]
- 高性能虚拟机解释器:DTC vs ITC(Indirect-Threaded Code)