bzoj 4610 Ceiling Functi

Description

bzoj上的描述有问题

给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树。

Input

第一行包含两个数\(n(1 \lt n \le 50)\)代表数列的数量,\(k(1 \le k \le 20)\)代表每个堆的插入序列长度。

接下来\(n\)行每行包含\(k\)个数代表每个数列。

Output

输出不同树的形态数。

Sample Input

12 7

291388 78619 945367 867244 966006 445425 648278

593908 292543 111985 66151 846350 93727 765366

790325 950781 514834 937591 3749 922704 723259

788203 256144 944013 558440 591881 795482 173898

324286 386153 624883 475996 120001 18438 300906

819238 889730 825701 320745 611539 492070 410382

528593 425310 458894 528505 488435 192846 682984

564357 635943 41024 396434 286305 274829 196124

851238 206925 126110 537002 246374 859835 936366

729469 815045 965455 104000 364877 151376 759750

670021 748323 53559 609778 106547 151277 766524

561059 895615 951857 781815 378082 703670 620446

Sample Output

12

题解

首先吐槽bzoj翻译

其实此题就是一个大水题。因为数据很小,我们直接暴力建树和判断,用并查集统计。

#include <cstdio>
#include <cstring>
#define MS 1010
#define N 52
int root[N], ch[2][MS], v[MS], totNode;
int fa[N];
int find(int a) { return (fa[a]^a)?fa[a]=find(fa[a]):a; }
void Insert(int &u, const int &val) {
if (!u) {
v[u = ++totNode] = val; ch[0][u] = ch[1][u] = 0;
} else {
if (val < v[u]) Insert(ch[0][u], val);
else Insert(ch[1][u], val);
}
}
bool diff(int u, int v) {
if (!u && !v) return false;
if (!u || !v) return true;
return diff(ch[0][u], ch[0][v]) || diff(ch[1][u], ch[1][v]);
} int main() {
int n, k, i, j, a, x, y;
scanf("%d%d", &n, &k);
for (i = 1; i <= n; ++i) {
fa[i] = i;
for (j = 1; j <= k; ++j) {
scanf("%d", &a);
Insert(root[i], a);
}
}
a = 0;
for (i = 1; i <= n; ++i)
for (j = 1; j < i; ++j)
if (!diff(root[i], root[j])) {
x = find(i), y = find(j);
if (x ^ y) fa[x] = y;
}
for (i = 1; i <= n; ++i) a += fa[i] == i;
printf("%d\n", a);
return 0;
}

bzoj 4610 Ceiling Functi的更多相关文章

  1. BZOJ 4610: [Wf2016]Ceiling Functi 水题

    4610: [Wf2016]Ceiling Functi 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4610 Description ...

  2. BZOJ4610——[Wf2016]Ceiling Functi

    水题一道,不是很懂为啥没人做... 1.题意:纠正一下..bzoj的题意不是很对...注意不是堆,是不平衡的二叉树,就是非旋转的treap, 另外...插入的时候,小于插在左边..大于等于插在右边 2 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. BZOJ 2127: happiness [最小割]

    2127: happiness Time Limit: 51 Sec  Memory Limit: 259 MBSubmit: 1815  Solved: 878[Submit][Status][Di ...

  5. SQL Server 随机数,随机区间,随机抽取数据rand(),floor(),ceiling(),round(),newid()函数等

    在查询分析器中执行:select rand(),可以看到结果会是类似于这样的随机小数:0.36361513486289558,像这样的小数在实际应用中用得不多,一般要取随机数都会取随机整数.那就看下面 ...

  6. SQL中Round(),Floor(),Ceiling()函数的浅析

    项目中的一个功能模块上用到了标量值函数,函数中又有ceiling()函数的用法,自己找了一些资料,对SQL中这几个函数做一个简单的记录,方便自己学习.有不足之处欢迎拍砖补充 1.round()函数遵循 ...

  7. BZOJ 3275: Number

    3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 874  Solved: 371[Submit][Status][Discus ...

  8. BZOJ 2879: [Noi2012]美食节

    2879: [Noi2012]美食节 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1834  Solved: 969[Submit][Status] ...

  9. BZOJ 题目整理

    bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...

随机推荐

  1. ABAP游标的使用

    在Oracle,SQLServer中游标的使用是经常的,所以在ABAP不懂是不行的......     1.声明游标 OPEN CURSOR [WITH HOLD] <c> FOR SEL ...

  2. AndroidStudio安装流程 以及 使用过程中出现的异常

    Android Studio2.0 教程从入门到精通Windows版 - 安装篇 Android Studio第一次启动跳不过“ downloading components”解决方案 通过hosts ...

  3. Android自定义ViewGroup

    视图分类就两类,View和ViewGroup.ViewGroup是View的子类,ViewGroup可以包含所有的View(包括ViewGroup),View只能自我描绘,不能包含其他View. 然而 ...

  4. (视频)Erich Gamma 与 Visual Studio Online 的一点野史

    大家对Erich Gamma的熟悉应该都集中在<设计模式>, Eclipse以及最近微软所发布的Visual Studio Code跨平台代码编辑器.其实在Erich加入微软的头几年里,他 ...

  5. 一个URL的物理文件的体现

    场景 许多同学在开发过程中经常会遇到一个问题,怎么去定义一个url?以及定义一个url之后怎么根据一个url定义文件. 公司组织一次内部培训,为了把这次培训的内容以博客的形式共享出来. URL与文件的 ...

  6. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  7. 如何监控ORACLE索引使用与否

    在数据库管理与维护中,我们总会遇到一个问题:我们创建的索引是否会被某些SQL语句使用呢?换个通俗表达方式:我创建的索引是否是未使用的索引(unused Indexes),是否有价值呢?如果创建的某个索 ...

  8. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

  9. 查找素数Eratosthenes筛法的mpi程序

    思路: 只保留奇数 (1)由输入的整数n确定存储奇数(不包括1)的数组大小: n=(n%2==0)?(n/2-1):((n-1)/2);//n为存储奇数的数组大小,不包括基数1 (2)由数组大小n.进 ...

  10. 1-web应用之LAMP源码环境搭建

    目录 一.LAMP环境的介绍     1.LAMP环境的重要性     2.LAMP组件介绍 二.Apache源码安装     1.下载Apache以及相关依赖包     2.安装Apache以及相关 ...