博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 6143-排列数
阅读量:5144 次
发布时间:2019-06-13

本文共 819 字,大约阅读时间需要 2 分钟。

题意

给出n和m,n代表first name和last name的长度,m代表字符种数,求有多少种排列使得first name和last name没有相同的字符。m个字符可以不用完。

分析

枚举整个名字用了$k \in [2,m]$种字符,first name用了$i \in [1,k-1]$种字符,则last name用了$k-i$种字符。

first name排列数即用$n$个字符分成$i$组的排列数$S(n,i)*i!$

last name排列数即$S(n,k-i)*(k-i)!$

答案可表示为$\sum_{k=2}^m \sum_{i=1}^{k-1} (C(k,i)*S(n,i)*i!*S(n,k-i)*(k-i)!)$

 

代码

#include #include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define MAX 2007#define MAXN 10007#define MAXM 20007#define INF 0x3f3f3f3f#define NINF 0xc0c0c0c0#define MOD 1000000007using namespace std;typedef long long LL;LL C[MAX][MAX],S[MAX][MAX],AA[MAX]={1,1};void init(){ S[1][1]=1; for(int i=2;i

  

 

转载于:https://www.cnblogs.com/shuiming/p/7383894.html

你可能感兴趣的文章
Version Control&Git
查看>>
两难的情况该如何处理
查看>>
Git -- 版本回退
查看>>
sqlite多表关联update
查看>>
xss---攻击
查看>>
java基础(六)--- list
查看>>
注解式struts2配合ajax
查看>>
自己写的一个 java swing 的闹钟
查看>>
OpenCV 中Scalar
查看>>
PHP 用Class构造JSON数据
查看>>
vue中js里的/* eslint-disable*/
查看>>
Git 代码更新:git fetch 和 git pull 的区别
查看>>
第4次作业-案例分析
查看>>
[转载]AMOLED结构详解,BOE专家给你分析驱动补偿
查看>>
动态调用web服务
查看>>
English trip -- VC(情景课)2 A At school
查看>>
English trip M1 - PC1 Are you a Model? 你是模特吗? Teacher:Taylor
查看>>
【MySQL运维实践】
查看>>
Wireshark抓取iPhone的数据包
查看>>
●BZOJ 2007 NOI 2010 海拔
查看>>