hdu 5698 瞬间移动(排列组合)
这题刚看完,想了想,没思路,就题解了 = =
但不得不说,找到这个题解真的很强大,链接:http://blog.csdn.net/qwb492859377/article/details/51478117
这个我只是看了他的思路,之后代码就自己写,之后交上去就是1A,我感觉好的题解就应该是这样的,Orz
要先看下他的思路,现在我在补充些我的理解: 首先,你要把行,列分开看,先说行,从1到n,1和n都不能走,因为1是开始,n是确定的,所以你有n-2种选择,你可以枚举x从1到n-2,就相当于高中学的,在n-2个箱子中放x个相同小球,有几种情况? 同理,列也是,但注意在同一个x时他们还要相乘,这很明显,因为不可能相加。
最后ans还要加1,因为从1,1直接到n,m的这种情况还没算。还有就是算C(n,k)了,这就是套模板了,没什么说的。
#include <bits/stdc++.h>
using namespace std; const int INF=0x3f3f3f3f;
typedef long long ll;
#define PI(A) printf("%d\n",A)
#define SI(N) scanf("%d",&(N))
#define SII(N,M) scanf("%d%d",&(N),&(M))
#define cle(a,val) memset(a,(val),sizeof(a))
#define rep(i,b) for(int i=0;i<(b);i++)
#define Rep(i,a,b) for(int i=(a);i<=(b);i++)
#define reRep(i,a,b) for(int i=(a);i>=(b);i--)
const double EPS= 1e- ; /* ///////////////////////// C o d i n g S p a c e ///////////////////////// */ const int MAXN= + ;
const int MOD=1e9+ ;
ll jiech[MAXN];//求阶乘取完模的数组 int N,M; //快速幂模板
ll mod_pow(ll x,ll n,ll mod)
{
ll res=;
while(n>){
if (n&) res=res*x%mod;
x=x*x%mod;
n>>=;
}
return res;
} //求C(n,k)的函数 (n在C下面,k在C上面)
//限制:MOD必须是质数,因为是用费马小定理求的
ll C(int n,int k)
{
ll d=(jiech[k]*jiech[n-k])%MOD;
return (jiech[n]*mod_pow(d,MOD-,MOD))%MOD;
} int main()
{
//先打表阶乘取模数组
jiech[]=jiech[]=;
for (int i=;i<MAXN;i++)
{
jiech[i]=(jiech[i-]*i)%MOD;
} while(~SII(N,M))
{ int k=min(N,M);
int k2=max(N,M);
ll ans=;
//要根据小的那个循环
for (int i=;i<=k-;i++)
{
ans+=C(k-,i)*C(k2-,i);
ans%=MOD;
}
printf("%lld\n",ans+);
} return ;
}
hdu 5698 瞬间移动(排列组合)的更多相关文章
- hdu 4451 Dressing 排列组合/水题
Dressing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 5698 瞬间移动 数学
瞬间移动 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5698 Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次 ...
- HDU 5698——瞬间移动——————【逆元求组合数】
瞬间移动 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- HDU 5698 瞬间移动
瞬间移动 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submis ...
- 排列组合+组合数取模 HDU 5894
// 排列组合+组合数取模 HDU 5894 // 题意:n个座位不同,m个人去坐(人是一样的),每个人之间至少相隔k个座位问方案数 // 思路: // 定好m个人 相邻人之间k个座位 剩下就剩n-( ...
- HDU 4497 GCD and LCM(分解质因子+排列组合)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4497 题意:已知GCD(x, y, z) = G,LCM(x, y, z) = L.告诉你G.L,求满 ...
- 排列组合 HDU - 1521 -指数型母函数
排列组合 HDU - 1521 一句话区分指数型母函数和母函数就是 母函数是组合数,指数型母函数是排列数 #include<bits/stdc++.h> using namespace s ...
- ACM~排列组合&&hdu例子
排列组合是数学中的一个分支.在计算机编程方面也有非常多的应用,主要有排列公式和组合公式.错排公式.母函数.Catalan Number(卡特兰数)等. 一.有关组合数学的公式 1.排列公式 P(n ...
- HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)
Machine scheduling Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
随机推荐
- MongoDB安装、配置和基本使用
一.搭建MongoDB的yum源 如果安装epel扩展源,可以安装MongoDB2.4版本 如要安装3.0版本,需要自己配置yum源,官方提供的源只支持64位系统 # vim /etc/yum.rep ...
- ISBN号码
总时间限制: 1000ms 内存限制: 65536kB 描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字.1位识别码和3位分隔符,其规定格式如"x-xxx- ...
- 在线QQ客服 生成
很简单,分为个人QQ和企业QQ: 一:企业QQ代码: http://crm2.qq.com/page/portalpage/wpa.php?uin=123456&aty=1&a=0&a ...
- eclipse使用jetty插件出现内存溢出解决方案
系统运行在MAVEN中的jetty插件下,当在ECLIPSE运 clean jetty:run时系统提示 OutOfMemoryError: PermGen space. 解决办法:设置run as ...
- mysql optimization
EXPLAIN 命令详解 http://www.cnblogs.com/gomysql/p/3720123.html http://www.cnblogs.com/Aiapple/p/5697229. ...
- web-api-global-error-handling
http://www.asp.net/web-api/overview/error-handling/web-api-global-error-handling http://www.cnblogs. ...
- Unity3d NGUI 地图
1,制作地图 方式1: NGUI,新建一个Atlas,为M,按照一定的比例如 1:400,绘制地图. 新建一个GameObject,为A,关联UIPanel.A的transform.localScal ...
- loadrunner---<二>---菜鸟对cookie的思考
http://www.cnblogs.com/Pierre-de-Ronsard/archive/2012/11/19/2772630.html loadrunner---<二>---菜鸟 ...
- 为什么匿名内部类只能访问其所在方法中的final类型的局部变量?
大部分时候,类被定义成一个独立的程序单元.在某些情况下,也会把一个类放在另一个类的内部定义,这个定义在其他类内部的类就被称为内部类,包含内部类的类也被称为外部类. class Outer { priv ...
- du 命令,对文件和目录磁盘使用的空间的查看
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...