博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排列组合+组合数取模 HDU 5894
阅读量:4543 次
发布时间:2019-06-08

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

1 // 排列组合+组合数取模 HDU 5894 2 // 题意:n个座位不同,m个人去坐(人是一样的),每个人之间至少相隔k个座位问方案数 3 // 思路: 4 // 定好m个人 相邻人之间k个座位 剩下就剩n-(m+1)*k个座位 5 // 剩下座位去插m个不同的盒子==就等价n个相同的球放m个不同的盒子 6 // 然后组合数出来了 7 // 乘n的话是枚举座位,除m是去掉枚举第一个座位的时候,剩下人相邻的座位相对不变的情况 8  9 #include 
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 #include
17 using namespace std;18 #define LL long long19 typedef pair
pii;20 const int inf = 0x3f3f3f3f;21 const int mod = 1e9+7;22 const int N = 1e6+10;23 const int maxx = 200010; 24 #define clc(a,b) memset(a,b,sizeof(a))25 const double eps = 1e-8;26 void fre() {freopen("in.txt","r",stdin);}27 void freout() {freopen("out.txt","w",stdout);}28 inline int read() { int x=0,f=1;char ch=getchar();while(ch>'9'||ch<'0') { if(ch=='-') f=-1; ch=getchar();}while(ch>='0'&&ch<='9') {x=x*10+ch-'0';ch=getchar();}return x*f;}29 30 int f[N];31 int inv(int x){32 int ret=1,y=mod-2;33 while(y){34 if(y&1)ret=1ll*ret*x%mod;35 y>>=1;x=1ll*x*x%mod;36 }37 return ret; 38 }39 int C(int n,int m){40 if(n

 

修正一下,加一组样列:

 n=5,m=1,k=1000
这时候用res的话 必须判m==1
其实可以一起去掉,直接lucas也a
数据太重要了

转载于:https://www.cnblogs.com/ITUPC/p/5883567.html

你可能感兴趣的文章
Android开发之手势滑动(滑动手势监听)详解
查看>>
switch
查看>>
HTTP错误code大全
查看>>
PAT Advanced Level 1043
查看>>
C++重载运算符练习--对people类重载“= =”运算符和“=”运算符
查看>>
Nmap命令的实用范例
查看>>
7-1 查找整数编程总结
查看>>
安装PHP以及搭建博客(一)
查看>>
关于WORD文档的读取乱码问题
查看>>
[问题记录.dotnet]取网卡信息报错"找不到"-WMI - Not found
查看>>
Codeforces Round #254 (Div. 2):B. DZY Loves Chemistry
查看>>
linux 安装虚拟机
查看>>
Thinkphp5笔记二:创建模块
查看>>
centos 安装mysql
查看>>
Redis 禁用FLUSHALL FLUSHDB KEYS 命令
查看>>
Matlab中imread函数使用报错“不应为MATLAB 表达式”分析
查看>>
MFC ADO数据库操作
查看>>
图像质量评价-NQM和WPSNR
查看>>
面试准备——相关知识
查看>>
每日一字:悟
查看>>