bzoj2425 [HAOI2010]计数 组合数
来源:互联网 发布:unity 编写js文件 编辑:程序博客网 时间:2024/05/22 00:53
分部分统计即可,注意0的位置用插板法
使用组合数要区别第一个位置前能不能放
码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;long long i,j,len,C[59][59],tong[11],lin,fa,ans,tot,k;char str[99];int main(){scanf("%s",str); len=strlen(str);for(i=0;i<len;i++){tong[str[i]-'0']++;}C[0][0]=1;for(i=1;i<=55;i++){C[i][0]=1;for(j=1;j<=55;j++){C[i][j]=C[i-1][j-1]+C[i-1][j]; }}fa=1;for(i=1;i<=9;i++)tot+=tong[i];lin=tot; for(i=1;i<=9;i++) fa*=C[lin][tong[i]],lin-=tong[i];for(i=tot;i<len;i++){ans+=fa*C[i-1][i-tot];}for(i=0;i<len;i++){int o=str[i]-'0';for(j=0;j<o;j++){if(!tong[j]||j==0&&i==0)continue;if(j!=0)tong[j]--,tot--;lin=tot;fa=1; for(k=1;k<=9;k++) fa*=C[lin][tong[k]],lin-=tong[k];ans+=fa*C[len-i-1][len-i-1-tot];if(j!=0)tong[j]++,tot++;}if(o!=0){tong[o]--;tot--;}}printf("%lld",ans);}
阅读全文
0 0
- bzoj2425 [HAOI2010]计数 组合数
- 【bzoj2425】【HAOI2010】【计数】【组合数学】
- [BZOJ2425][HAOI2010]计数(组合数学)
- BZOJ2425 [HAOI2010]计数
- BZOJ2425: [HAOI2010]计数
- HAOI2010 计数
- 2425: [HAOI2010]计数
- luogu P2518 [HAOI2010]计数
- 数位dp-P2518 [HAOI2010]计数
- HDU3723-Delta Wave(Catalan数+组合计数)
- 【BZOJ4517】排列计数,组合数+错排
- [组合计数] BZOJ 3505 [Cqoi2014]数三角形
- BZOJ4517 排列计数 [组合数][错排]
- 组合计数
- 组合计数
- [组合&计数]
- 组合计数
- HDU 3723 Delta Wave(组合计数,卡特兰数)
- 认识“安卓”,于我,也于所有想学习安卓的人
- 面向对象程序设计的结构
- 【八中测试】平分石子
- Linux (centos7) 防火墙命令
- Android 封装工具类之共享参数
- bzoj2425 [HAOI2010]计数 组合数
- 转:SKLearn中预测准确率函数介绍
- Object-c Blocks的理解
- POJ-3660 Cow Contest
- android studio 升级到3.0.1 原有项目运行在android 4.4停止运行
- Python基本语法
- MongoDB基本命令用
- CodeForces
- 如何快速转载CSDN中的博客