bzoj 4610: [Wf2016]Ceiling Functi
来源:互联网 发布:京东商城数据库设计 编辑:程序博客网 时间:2024/06/06 05:36
Description
给出n个长度为k的数列,每个数列模拟堆的操作,问有多少种形态不同的堆。
Input
第一行包含两个数n(1<n<=50)代表堆的数量,k(1<=k<=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
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
HINT
Source
鸣谢Yts1999上传,lbn187提供译文
判断有多少种不同的二叉排序树
直接暴力比较即可
#include<cstdio>using namespace std;struct tree{int l,r;int ll,rr;int x,s;}tr[80001];int rt[101];int tot;inline int add(int p,int x){tr[p].s++;if(x<tr[p].x){if(tr[p].ll==0){tot++;tr[tot].x=x;tr[p].ll=tot;tr[tot].s=1;}elseadd(tr[p].ll,x);}else{if(tr[p].rr==0){tot++;tr[tot].x=x;tr[p].rr=tot;tr[tot].s=1;}elseadd(tr[p].rr,x);}}inline bool check(int i,int j){if(i==0&&j==0)return true;if(i==0||j==0)return false;if(tr[i].s!=tr[j].s)return false;return check(tr[i].ll,tr[j].ll)&&check(tr[i].rr,tr[j].rr);}int fa[101];inline int find(int x){if(fa[x]!=x)fa[x]=find(fa[x]);return fa[x];}int main(){int n,k;scanf("%d%d",&n,&k);int i,j;int x;for(i=1;i<=n;i++){for(j=1;j<=k;j++){scanf("%d",&x);if(rt[i]==0){tot++;rt[i]=tot;tr[tot].x=x;tr[tot].s=1;}elseadd(rt[i],x);}}for(i=1;i<=n;i++)fa[i]=i;for(i=1;i<=n;i++){for(j=i+1;j<=n;j++){if(check(rt[i],rt[j])){int fx=find(i),fy=find(j);if(fx!=fy)fa[fx]=fy;}}}int ans=0;for(i=1;i<=n;i++)if(fa[i]==i)ans++;printf("%d\n",ans);return 0;}
0 0
- bzoj 4610: [Wf2016]Ceiling Functi
- BZOJ4610 [Wf2016]Ceiling Functi
- 【BZOJ】4610 [Wf2016] Ceiling Function
- BZOJ4610——[Wf2016]Ceiling Functi
- 【BZOJ】4614 [Wf2016] Oil
- 【BZOJ】4612 [Wf2016] Forever Young
- 【BZOJ】4619 [Wf2016] Swap Space
- bzoj 4612: [Wf2016]Forever Young
- [乱搞 几何] BZOJ 4614 [Wf2016]Oil
- BZOJ 4612([Wf2016]Forever Young-二分)
- BZOJ4614 [Wf2016]Oil
- BZOJ4619 [Wf2016]Swap Space
- 4619: [Wf2016]Swap Space
- ceiling函数的使用
- Math.Ceiling Method (Double)
- CEILING()函数--见分进元
- sql)CEILING函数
- Sql Server 函数ceiling
- iOS UIAlertController弹窗效果
- tjut 4937
- Y2K Accounting Bug
- 【工具软件合集】
- C++/C语言函数:isalpha()函数 isdigit(int c)宏
- bzoj 4610: [Wf2016]Ceiling Functi
- Android进阶图片处理之三级缓存方案
- Myeclipse 运行maven控制台中文乱码
- 利用java获取当前时间
- hdu5735Born Slippy(乱搞)
- 仿QQ侧滑删除
- web开发 写一个数字验证码
- 杭电OJ 1803 Deli Deli
- QT如何将QlineEdit里的QString字符串存储到unsigned char 数组中