二叉树—-1(No.9HN省赛小题)
题目:
1013: Prototypes analyze
时间限制: 1 Sec 内存限制: 128 MB
提交: 6 解决: 4
[提交][状态][讨论版]
题目描述
输入
输出
样例输入
1
5 3
2 7 1
1 5 9
3 1 4
2 6 5
9 7 3
样例输出
4
大意就是告诉你一种构造二叉树的方法和每颗二叉树所含的元素值,给出若干颗二棵树,判断有几种不同样式的二叉树;
第一次知道,指针+结构体构造二叉树,所以1A时用的是一维数组耗费了大量的内存;
代码:
#include<iostream>
#include<cstring>
using namespace std;
typedef struct node
{
node *l,*r;
int v;
}*Tree; //Tree类型表示node型指针(Tree a==node *a)
bool pd=true;
Tree tree[55];
void build(Tree &p,int v) //用引用直接改变p的树形形态,不然的话会构造失败
{
if(p==NULL) {
p=new node();
p->v=v;
p->l=NULL;
p->r=NULL;
}
else if(v<p->v) build(p->l,v);
else if(v>p->v) build(p->r,v);
}
void judge(Tree a,Tree b)
{
if(a==NULL&&b==NULL) return;
else if(a&&b){
judge(a->r,b->r);
judge(a->l,b->l);
}
else pd=false; //不相等 false表示两棵树形状不相同
}
int main()
{
int t,i,j,n,m,k;
int a;
cin>>t;
while(t--){int ans=0;
cin>>n>>k;
for(j=1;j<=n;++j){
Tree p=NULL;
for(i=1;i<=k;++i){
cin>>a;
build(p,a);
}
tree[j]=p;
}
for(i=1;i<=n;++i){
for(j=i+1;j<=n;++j){
pd=true; //先假设两棵树相等
judge(tree[i],tree[j]);
if(pd) break; //pd值不变说明两棵树真的相等,出现重复直接break
}
if(!pd) ++ans; //比较到最后pd还是false说明不重复+1
}
cout<<ans<<endl;
}
return 0;
}
二叉树—-1(No.9HN省赛小题)的更多相关文章
- Python解答蓝桥杯省赛真题之从入门到真题(二刷题目一直更新)
蓝桥刷题 原文链接: https://github.com/libo-sober/LanQiaoCup Python解答蓝桥杯省赛真题之从入门到真题 不同字串 """ 一 ...
- 2013年山东省赛F题 Mountain Subsequences
2013年山东省赛F题 Mountain Subsequences先说n^2做法,从第1个,(假设当前是第i个)到第i-1个位置上哪些比第i位的小,那也就意味着a[i]可以接在它后面,f1[i]表示从 ...
- HEX SDUT 3896 17年山东省赛D题
HEX SDUT 3896 17年山东省赛D题这个题是从矩形的左下角走到右上角的方案数的变形题,看来我对以前做过的题理解还不是太深,或者是忘了.对于这种题目,直接分析它的性质就完事了.从(1,1)走到 ...
- 第十届蓝桥杯JavaB组省赛真题
试题 A: 组队 本题总分:5 分 [问题描述] 作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员, 组成球队的首发阵容. 每位球员担任 1 号位至 5 号位时的评分如下表所示. ...
- 常让人误解的一道js小题
一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...
- 一些js小题(一)
一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...
- 2013杭州现场赛B题-Rabbit Kingdom
杭州现场赛的题.BFS+DFS #include <iostream> #include<cstdio> #include<cstring> #define inf ...
- 关于理解python类的小题
今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...
- 2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路
这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定 ...
随机推荐
- Sony/索尼 NW-ZX300A ZX300 无损音乐播放器4.4口
https://item.taobao.com/item.htm?spm=a1z0d.7625083.1998302264.6.5c5f4e69ELHOcm&id=557859816402 ( ...
- Js中String转int
Js中String转int 方案一代码: Number(str) 方案二代码: //parseInt 方法都有两个参数, 第一个参数就是要转换的对象, 第二个参数是进制基数, 可以是 2, 8, 10 ...
- Fine报表权限流程分析记录
Fine报表权限流程分析记录 URL访问三种类型的报表:第一个:BI报表 例如: http://192.25.103.250:37799/WebReport/ReportServer?op=fr_bi ...
- 奇怪的问题:改变了界面,生成的exe不起作用
现象:修改ui界面的控件,如改变text,生成exe没有改变,清理.重新创建也没有作用 原因:ui.h没有被更新,每次软件生成的时候都是调用的旧的文件 解决:先将debug和release文件夹删除, ...
- CF620E New Year Tree 线段树 dfs序
luogu链接 题目大意: 有一个节点有颜色的树 操作1.修改子树的颜色 操作2.查询子树颜色的种类 注意,颜色种类小于60种 只有子树的操作,dfs序当然是最好的选择 dfs序列是什么,懒得讲了,自 ...
- kubernetes 命令记录
操作基本命令: 通过yaml文件创建: kubectl create -f xxx.yaml (不建议使用,无法更新,必须先delete) kubectl apply -f xxx.yaml (创 ...
- JavaScript:Delete属性
以前,我就晓得delete只能够删除隐性属性(就是没有进行声明的变量),但是不知道为什么这样? 隐性属性:在页面中以前没有声明过该变量,直接进行赋值的 str='hongda' 其实这是由属性的特性决 ...
- LightOJ 1393 Crazy Calendar(博弈)题解
题意:r*c方格中,每个格子有一定石子,每次移动每格任意数量石子,只能向下或者向右动一格,不能移动为败 思路:显然是Nim,到右下曼哈顿距离为偶数的不用管,因为先手动一下后手动一下最后移到右下后还是先 ...
- Linux rhel7 下MySQL5.7.18详细安装文档
Linux rhel7 下MySQL5.7.18详细安装文档 本文安装MySQL5.7使用的是vm虚拟机rhel7操作系统 ,ftp文件传输是FileZilla3.27,远程连接xssh5.0 1 登 ...
- AcceptAsync和BeginAccept的区别
Difference between […]Async and Begin[…] .net asynchronous APIs Note that most *Async methods (with ...