//yy:想到昨天一个神题整了几个小时,最后按题解把p拆了用孙子定理、、今天这个简单,把C暴力拆了。。

题目链接:nefu 628 Garden visiting

1 <= n, m, p <= 10^5 

题意:给出n*m的矩形,求从左上角到右下角的路径数(对p取模)。

题解:答案就是C(m+n-2, m-1),但是不能杨辉三角,而且考虑到p可能为合数、、再看看这个数据范围,可以暴力进行素因子分解哇。。。

 #include<cstdio>
using namespace std;
const int N = 2e5+;
typedef long long ll;
ll n, m, P, a, b, c, sum, ans;
ll pow(ll a,ll b,ll p){for(sum=,a%=p;b;a=a*a%p,b>>=)if(b&)sum=sum*a%p;return sum;}
ll Cnt(ll n, ll p){ll num=;while(n)num+=n/p,n/=p;return num;}
bool prime[N];
int p[N], tot, t, i, j;
void init(){for(i=;i<N;i++)prime[i]=true;for(i=;i<N;i++){if(prime[i])p[tot++]=i;
for(j=;j<tot&&i*p[j]<N;j++){prime[i*p[j]]=false;if(i%p[j]==)break;}}}
int main(){
init();
scanf("%d", &t);
while(t--) {
scanf("%lld%lld%lld", &n, &m, &P);
n += (m - ); m--;
for(ans = , i = ; i < tot && p[i] <= n; ++i) {
a = Cnt(n, p[i]); b = Cnt(m, p[i]); c = Cnt(n-m, p[i]);
a -= (b + c);
ans = ans * pow(p[i], a, P) % P;
}
printf("%lld\n", ans);
}
return ;
}

view code

nefu 628 Garden visiting的更多相关文章

  1. NEFU 628 Garden visiting (数论)

    Garden visiting Problem:628  Time Limit:1000ms  Memory Limit:65536K Description There is a very big ...

  2. acm数学(转)

    这个东西先放在这吧.做过的以后会用#号标示出来 1.burnside定理,polya计数法    这个大家可以看brudildi的<组合数学>,那本书的这一章写的很详细也很容易理解.最好能 ...

  3. 机器人走方格 V3

    1120 . 机器人走方格 V3   基准时间限制:1 秒 空间限制:65536 KB 分值: 160 N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在 ...

  4. [转] POJ数学问题

    转自:http://blog.sina.com.cn/s/blog_6635898a0100magq.html 1.burnside定理,polya计数法 这个大家可以看brudildi的<组合 ...

  5. ACM数学

     1.burnside定理,polya计数法 这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结 2.置换,置换的运算 置换的概念还是比较好理解的,< ...

  6. HDU5977 Garden of Eden(树的点分治)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5977 Description When God made the first man, he ...

  7. hdu-5977 Garden of Eden(树分治)

    题目链接: Garden of Eden Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  8. nginx+iis、NLB、Web Farm、Web Garden、ARR

    nginx+iis实现负载均衡 在win2008R2上使用(NLB)网络负载均衡 NLB网路负载均衡管理器详解 [译文]Web Farm和Web Garden的区别? IIS负载均衡-Applicat ...

  9. VPN常见错误码(633,628,691)的意思及修复方法

    因为工作原因经常上国外网站需要用到VPN,在这里总结一下使用中可能遇到的一些常见问题.(目前用Nydus觉得还不错) 1.633错误 :由于Windows系统本身的问题,在PPTP协议连接多次并断开之 ...

随机推荐

  1. 最小化安装的redhat/centos安装gnome桌面

    因系统版本和语言环境不同,安装包的名字会有所差别 安装方式可以选择直接联网安装,也可以加载dvd镜像源安装,这里针对配置redhat/centos本地dvd的yum源做个记录: 1.复制 redhat ...

  2. java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang

    java.lang.NumberFormatException: For input string: "1" at java.lang.NumberFormatException ...

  3. Golang教程:Map

    什么是 map? Map 是 Go 中的内置类型,它将键与值绑定到一起.可以通过键获取相应的值. 如何创建 map? 可以通过将键和值的类型传递给内置函数 make 来创建一个 map.语法为:mak ...

  4. Golang教程:数组和切片

    数组 数组是类型相同的元素的集合.例如,整数 5, 8, 9, 79, 76 的集合就构成了一个数组.Go不允许在数组中混合使用不同类型的元素(比如整数和字符串). 声明 var variable_n ...

  5. js验证营业执照号码是否合规

    需求:最近要做实名验证的功能,但是验证我们要验证严谨一点,参考了网上关于营业执照号码规则和一些大侠的代码的代码,总结一下. 营业执照号码规则:规则 代码: //方法一:function checkLi ...

  6. ServiceHelper

    public class ServiceHelper { private static string _baseUrl = $@"http://{Config.Instance.MesSer ...

  7. MdiContainer

    /// <summary> /// 显示form /// </summary> /// <param name="form">要显示的form& ...

  8. JavaScript call 和apply 的理解

    这两个方法对于一些新手而言难耐弄清他们到底是怎么回事,对我我来讲我对call和apply的方法理解的也比较含糊.今天闲来无事准备彻底搞call和apply到底是怎么回事.本着互联网分享精神.我将我自己 ...

  9. 一:SpringDataJPA

    一:spring data jpa介绍 spring data:其实spring data就是spring提供了一个操作数据的框架.而spirng data jpa只是spring data框架下的一 ...

  10. Java面试题之HashMap阿里面试必问知识点,你会吗?

    面试官Q1:你用过HashMap,你能跟我说说它的数据结构吗? HashMap作为一种容器类型,无论你是否了解过其内部的实现原理,它的大名已经频频出现在各种互联网Java面试题中了.从基本的使用角度来 ...