bzoj1211 [HNOI2004]树的计数 prufer序列
2017-05-06 15:25
417 查看
prufer序列,组合数部分暴力分解质因数即可。
#include<cstdio> #include<cstring> #include<cstdlib> #include<iostream> #include<cmath> #include<algorithm> #include<set> #include<map> #include<queue> #include<stack> #include<vector> #include<bitset> using namespace std; typedef long long LL; int n; int a[210]; int b[210]; void work(int x,int f) { for (int i=2;i<=x;i++) { if (x%i==0) { while (x%i==0) b[i]+=f,x/=i; } } } void cal(int x,int y) { for (int i=1;i<=x;i++) work(i,1); for (int i=1;i<=y;i++) work(i,-1); for (int i=1;i<=x-y;i++) work(i,-1); } int main() { scanf("%d",&n); int sum=0; for (int i=1;i<=n;i++) { scanf("%d",&a[i]),sum+=a[i]; if (a[i]<=0&&n>1) return printf("0\n"),0; } if (sum!=2*n-2) return printf("0\n"),0; if (n==1) return printf("1\n"),0; sum=n-2; for (int i=1;i<=n;i++) cal(sum,a[i]-1),sum-=a[i]-1; LL ans=1; for (int i=1;i<=n;i++) for (int j=1;j<=b[i];j++) ans*=(LL)i; cout<<ans<<endl; return 0; }
相关文章推荐
- [BZOJ1211][HNOI2004]树的计数(Prufer序列)
- 【BZOJ1211】【HNOI2004】树的计数 prufer序列
- [BZOJ1005][HNOI2008]明明的烦恼&&[BZOJ1211][HNOI2004]树的计数【prufer序列】
- 【BZOJ1005/1211】[HNOI2008]明明的烦恼/[HNOI2004]树的计数 Prufer序列+高精度
- BZOJ 1211 HNOI2004 树的计数 Prufer序列
- [BZOJ1211][HNOI2004]树的计数(prufer序列+数学相关)
- [BZOJ1211][HNOI2004][prufer序列][排列]树的计数
- 【BZOJ 1211】 1211: [HNOI2004]树的计数 (prufer序列、计数)
- bzoj1211: prufer序列 | [HNOI2004]树的计数
- BZOJ 1211 HNOI2004 树的计数 Prufer序列
- 【BZOJ1211】树的计数(HNOI2004)-Prufer序列+组合计数
- BZOJ 题目1211: [HNOI2004]树的计数(组合数学,prufer)
- bzoj 1211: [HNOI2004]树的计数 (prufer序列+组合数学)
- bzoj 1211: [HNOI2004]树的计数 -- purfer序列
- [Prufer] BZOJ 1211 [HNOI2004]树的计数
- bzoj1211 [HNOI2004]树的计数(prufer序列+组合数学+计数)
- 【prufer编码】BZOJ1211 [HNOI2004]树的计数
- bzoj1211: [HNOI2004]树的计数
- bzoj1211 [HNOI2004]树的计数 prufer序列+组合数
- bzoj 1211: [HNOI2004]树的计数