分部分统计即可,注意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);
}

bzoj2425 [HAOI2010]计数 组合数相关推荐

  1. BZOJ2425:[HAOI2010]计数——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2425 https://www.luogu.org/problemnew/show/P2518 你有 ...

  2. [HAOI2010]计数 数位DP+组合数

    题面: 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数.比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. ...

  3. 洛谷P2518 [HAOI2010]计数

    题目描述 你有一组非零数字(不一定唯一),你可以在其中插入任意个0,这样就可以产生无限个数.比如说给定{1,2},那么可以生成数字12,21,102,120,201,210,1002,1020,等等. ...

  4. bzoj4517 [Sdoi2016]排列计数 组合数+错排

    这个题描述的本身就很离散,所以就相当于选出m个位置,剩下的位置的错排 错排的公式也不是很难推,注意及时利用以前的结果就好了,实在不行根据印象打表找规律 设有n个数  ,n个位置,第一个数一定不能选第一 ...

  5. 数位dp 的简单入门

    时间紧张,就不讲那么详细了. 之前一直被深搜代码误解,以为数位dp 其实就是记忆化深搜...(虽说爆搜确实很舒服而且还好想) 但是后来发现数位dp 的标准格式其实是 预处理 + dp ...... 数 ...

  6. 2018十二月刷题列表

    Preface \(2018\)年的尾巴,不禁感慨自己这一年的蜕变只能用蜕变来形容了. 而且老叶说我们今年没的参加清北冬令营可以参加CCF在广州二中举办的冬令营,只要联赛\(390+\)就应该可以报. ...

  7. NOIP前的刷题记录

    因为这几天要加油,懒得每篇都来写题解了,就这里记录一下加上一句话题解好了 P4071 [SDOI2016]排列计数   组合数+错排 loj 6217 扑克牌 暴力背包 P2511 [HAOI2008 ...

  8. 【组合数学】计数模型、常见组合数与组合恒等式 ★★

    文章目录 一.计数模型 二.常见的组合计数 一.计数模型 当前涉及到的计数模型 : 1 . 选取问题 : nnn 元集 SSS , 从 SSS 集合中选取 rrr 个元素 ; 根据 元素是否允许重复 ...

  9. 【组合数学】排列组合 ( 多重集组合数示例 | 三个计数模型 | 选取问题 | 多重集组合问题 | 不定方程非负整数解问题 )

    文章目录 一.多重集组合示例 二.三个计数模型 排列组合参考博客 : [组合数学]基本计数原则 ( 加法原则 | 乘法原则 ) [组合数学]集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | ...

最新文章

  1. 缓存一致性和跨服务器查询的数据异构解决方案canal
  2. Django搭建个人博客:给文章加个漂亮的标题图
  3. 《Credit Risk Scorecard》第八章: Scorecard Implementation
  4. masonry的约束应该写在哪里_规划奇思|“中心城区”到底在哪里?和城镇开发边界是什么关系?...
  5. APICloud开发者进阶之路 | 超级实用技巧
  6. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)
  7. 辨析ADKJVMJREJDKADT
  8. java web应用开发期末考试_Java开发工程师(Web方向) - 04.Spring框架 - 期末测试
  9. mysql基本命令总结
  10. H凹变换—lhMorpHConcave
  11. iOS底层探索之类的结构(中):bits
  12. linux 占用缓存前10_Linux查看内存使用情况应该使用什么命令
  13. DEA博弈交叉效率matlab,dea的交叉效率
  14. 使用ecstore-sdk开发包制作易开店和启明星模板
  15. ios共享账号公众号_新增iOS应用账号共享03
  16. centos6.5安装ansible和tower
  17. Intellij IDEA企业版破解
  18. 【小程序】384- 如何一人五天开发完复杂小程序(前端必看)
  19. 【2020-11-11】JS逆向之蘑菇街商品数据接口解密
  20. 武汉理工计算机网络,计算机网络实验武汉理工大学

热门文章

  1. 零基础机器学习(2)-你的第一个Python程序
  2. 优达学城深度学习之三(上)——卷积神经网络
  3. python3 try except or_Python基础10:try except异常处理详解
  4. 【mysql基础知识】通过Navicat控制小数点位数,以及填充0后不显示的问题
  5. 网络实用技术基础模拟测试2_网络安全工程师教你:Kali Linux之Metasploit渗透测试基础(五)...
  6. html盒子中盒子排列,css3中弹性盒排布使用方法
  7. reids mysql 面试_月薪3k的后端面试点-Mysql和Redis
  8. 华为p20Android怎么解开,华为P20如何获得root权限来解决自启动手机应用程序的问题...
  9. 每天一个小异常——ssh整合空指针异常
  10. api接口怎么分批传递数据_新手上路:浅谈什么是API接口 API定义是什么