Uva-839 + Uva-699
来源:互联网 发布:当前网络安全形势 编辑:程序博客网 时间:2024/06/05 15:14
两题类似,所以放在一起了。
839
题目大意: 判断天平是否平衡。
思路:按前序遍历的顺序建树,在建树的同时可以判断是否平衡。
代码:
#include <algorithm>#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <set>using namespace std;int flag = 1;int pre(){ int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); int lw = a,rw = c; if(a == 0) lw = pre(); if(c == 0) rw = pre(); if(lw * b != rw * d) flag = 0; return lw+rw;}int t;int main(){ scanf("%d",&t); int num = 0; while(t--) { flag = 1; pre(); if(num != 0) printf("\n"); num++; if(flag) printf("YES\n"); else printf("NO\n"); } return 0;}
Uva699
题目大意: 下落的树叶,根结点到左右两遍的距离都是1,计算地上的不同的堆的落叶数量。
思路:和上一题类似,这题也是前序遍历建树,而且由于距离都是1,所以在建树的时候所属的位置就已经定了。
代码:
#include <cstdio>#include <iostream>#include <cstring>#include <queue>using namespace std;#define maxn 1005int ans[maxn];int build(int dis){ int a; scanf("%d",&a); //cout<<dis<<endl; if(a == -1) return -1; ans[dis] += a; build(dis-1); build(dis+1);}int main(){ int num = 1; // freopen("d://in.txt","r",stdin); for(;;) { int a; memset(ans,0,sizeof(ans)); scanf("%d",&a); if(a == -1) break; build(500-1); build(500+1); ans[500] += a ; printf("Case %d:\n",num++); int mark = 0; for(int i = 0; i < maxn; i++) if(ans[i] != 0) { if(mark == 0 ){printf("%d",ans[i]);mark= 1;} else printf(" %d",ans[i]); } printf("\n\n"); } return 0;}
0 0
- Uva-839 + Uva-699
- uva
- UVA
- UVA
- UVA
- uva
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- UVA
- 多选框是否选中、div强制换行、首行缩进、鼠标手状
- 初尝渗透2
- js 正则表达式 贪婪与惰性
- MVP设计模式进行Android应用开发
- AXI Stream接口,AXI 流接口规范
- Uva-839 + Uva-699
- 大数据运算系统(1)--- MapReduce
- ActiveMQ开启用户认证及消息持久化到数据库功能
- html显示当前时间
- 使用js写一个简单的判断年龄是否达标的页面
- 排序算法总结与实现
- 动态规划:最长公共子序列
- 结合定时器函数与window.status做出状态栏的文字动态移动效果
- hdu 1677 Nested Dolls LIS + 动态规划