bzoj1211: [HNOI2004]树的计数
来源:互联网 发布:里见浩太朗 知乎 编辑:程序博客网 时间:2024/06/05 11:19
传送门
Prufer序列,具体参考[HNOI2008]明明的烦恼
直接乘会爆long long,所以先把每个数分解质因数,把质因数的次数相加相减,然后再乘起来
注意此题无解需要输出0
当n!=1&&d[i]==0时 输出0
当Σ(d[i]-1)!=n-2时输出0
#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>#include<cstring>#include<queue>#define ll long longusing namespace std;ll ans;int n,x,sum,a[155];inline void chai(int x,int y){ for (int i=2;i*i<=x;i++) while (x%i==0){ x/=i; a[i]+=y; } if (x!=1) a[x]+=y;}void la(){puts("0"); exit(0);}int main(){ scanf("%d",&n); for (int i=2;i<n-1;i++) chai(i,1); for (int i=1;i<=n;i++){ scanf("%d",&x); if (x==0&&n!=1) la(); sum+=x-1; for (int j=2;j<x;j++) chai(j,-1); } if (sum!=n-2) la(); ans=1; for (int i=2;i<=n;i++) for (int j=1;j<=a[i];j++) ans*=(ll)i; printf("%lld",ans); return 0;}
0 0
- bzoj1211: [HNOI2004]树的计数
- bzoj1211: [HNOI2004]树的计数
- 【bzoj1211】 [HNOI2004]树的计数
- 【bzoj1211】 HNOI2004—树的计数
- bzoj1211 [HNOI2004]树的计数 prufer序列
- 【BZOJ1211】【HNOI2004】树的计数 prufer序列
- 【BZOJ1211】树的计数(HNOI2004)-Prufer序列+组合计数
- [BZOJ1211][HNOI2004][prufer序列][排列]树的计数
- [BZOJ1211][HNOI2004]树的计数(prufer序列+数学相关)
- bzoj1211 [HNOI2004]树的计数 prufer序列+组合数
- bzoj1211树的计数
- [Prufer] BZOJ 1211 [HNOI2004]树的计数
- BZOJ 1211 [HNOI2004] 树的计数
- BZOJ P1211:[HNOI2004]树的计数
- [bzoj]1211: [HNOI2004]树的计数
- BZOJ 1211: [HNOI2004]树的计数
- bzoj 1211[HNOI2004]树的计数
- [HNOI2004]树的计数(prufer编码)
- 友元(friend)
- JZOJ 4.8 2435——校门外的树【树状数组】
- Path Sum and Delete Node in a Linked List
- Cell系列的update机制与个性化使用
- 浅谈数组(二)
- bzoj1211: [HNOI2004]树的计数
- 图解TCP/IP笔记(三)
- 线性表的有关操作
- week7- Dynamic Programming-NO.516. Longest Palindromic Subsequence
- android开发之 java.lang.NoClassDefFoundError:retrofit2.Retrofit$Builder 错误解决
- Java8 Mac安装
- 前端开发学习资料
- c++引用
- web学习——项目的开发流程