紫书章六例题九 天平 UVA 839(更新二叉树的节点上的值)
来源:互联网 发布:媒体矩阵 是什么意思 编辑:程序博客网 时间:2024/06/07 08:06
题意:输入一个树状天平,看是否都符合力矩相等。递归输入每个节点(天平)。第一种是用指针来建树,然后逐步向上更新判断
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>using namespace std;struct node{ int v,w1,d1,w2,d2; node *l,*r; node(int a=0,node *left=NULL,node *right=NULL) { v=a,l=left,r=right; }};node *root;int flag=0;node* buildtree(node *t){ int w1,d1,w2,d2; scanf("%d %d %d %d",&w1,&d1,&w2,&d2); t->d1=d1,t->d2=d2,t->w1=w1,t->w2=w2; if(!w1) { if(t->l==NULL){t->l=new node();} buildtree(t->l); } if(!w2){ if(t->r==NULL) {t->r=new node();} buildtree(t->r); } if(t->l!=NULL)//更新上面节点的W t->w1+=(t->l)->w1+(t->l)->w2; if(t->r!=NULL) t->w2+=(t->r)->w1+(t->r)->w2; if(t->w1*t->d1!=t->w2*t->d2) flag=1;}int main(){ int T,case1=0; scanf("%d",&T); while(T--) { if(case1) printf("\n"); flag=0; root =new node(); buildtree(root); if(flag==1) printf("NO\n"); else printf("YES\n"); case1=1; } return 0;}
第二种是用引用的方法,代码更精简
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <sstream>#include <cmath>using namespace std;int flag=0;void solve(int &w){ int w1,d1,w2,d2; cin>>w1>>d1>>w2>>d2; if(!w1) solve(w1); if(!w2) solve(w2); w=w1+w2; if(w1*d1!=w2*d2) flag=1;}int main(){ int T,w; scanf("%d",&T); while(T--) { flag=0; solve(w); if(!flag) printf("YES\n");else printf("NO\n"); if(T) printf("\n"); } return 0;}
0 0
- 紫书章六例题九 天平 UVA 839(更新二叉树的节点上的值)
- 例题6-9 天平(Not so Mobile, UVa 839)
- 例题6-9 天平 UVa 839 递归
- 九度 1113 关于二叉树节点的个数问题
- 遍历课上例题shuiguo.xml文件中根节点的所有节点,打印节点名称和节点值
- 二叉树(二叉搜索树)上的两节点的公共祖先节点(235和236)
- 例题6-7 二叉树的层次遍历 UVa 122 Trees on the level
- 习题6-6 修改天平 UVa 12166 二叉树 *
- 二叉树的几道典型例题
- 理解二叉树建立过程的例题
- 例题:Abbott的复仇(UVa 816)
- UVA 839 天平
- UVa 839 天平
- UVa 839 天平
- UVA 839 天平
- uva-839天平
- UVA 437 例题9-2 巴比伦塔 (DAG上的动态规划)
- 紫书章六例题七 树的层次遍历 UVA 122(链表)
- tensorflow识别手写数字
- 题目1080:进制转换
- (转)Android View框架的measure机制
- 哈希索引的缺点(学习笔记)
- JDBC--学习笔记(二)
- 紫书章六例题九 天平 UVA 839(更新二叉树的节点上的值)
- 接口与工厂
- POJ-1222-尺取法,开关灯
- bits/stdc++.h
- 关闭Hadoop时no namenode to stop异常
- 侧滑菜单——SlidingMenu
- 安卓6.0通过URI进行图片分享问题总结
- KMP常用算法模板
- oracle创建存储过程和定时任务