nefu 628 Garden visiting
//yy:想到昨天一个神题整了几个小时,最后按题解把p拆了用孙子定理、、今天这个简单,把C暴力拆了。。
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的更多相关文章
- NEFU 628 Garden visiting (数论)
Garden visiting Problem:628 Time Limit:1000ms Memory Limit:65536K Description There is a very big ...
- acm数学(转)
这个东西先放在这吧.做过的以后会用#号标示出来 1.burnside定理,polya计数法 这个大家可以看brudildi的<组合数学>,那本书的这一章写的很详细也很容易理解.最好能 ...
- 机器人走方格 V3
1120 . 机器人走方格 V3 基准时间限制:1 秒 空间限制:65536 KB 分值: 160 N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在 ...
- [转] POJ数学问题
转自:http://blog.sina.com.cn/s/blog_6635898a0100magq.html 1.burnside定理,polya计数法 这个大家可以看brudildi的<组合 ...
- ACM数学
1.burnside定理,polya计数法 这个专题我单独写了个小结,大家可以简单参考一下:polya 计数法,burnside定理小结 2.置换,置换的运算 置换的概念还是比较好理解的,< ...
- HDU5977 Garden of Eden(树的点分治)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5977 Description When God made the first man, he ...
- hdu-5977 Garden of Eden(树分治)
题目链接: Garden of Eden Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- nginx+iis、NLB、Web Farm、Web Garden、ARR
nginx+iis实现负载均衡 在win2008R2上使用(NLB)网络负载均衡 NLB网路负载均衡管理器详解 [译文]Web Farm和Web Garden的区别? IIS负载均衡-Applicat ...
- VPN常见错误码(633,628,691)的意思及修复方法
因为工作原因经常上国外网站需要用到VPN,在这里总结一下使用中可能遇到的一些常见问题.(目前用Nydus觉得还不错) 1.633错误 :由于Windows系统本身的问题,在PPTP协议连接多次并断开之 ...
随机推荐
- .NET环境下的DPAPI加密编程
Windows的本地加密保护机制提供了简单的调用接口,密钥的生成.保护等事项一概由系统来处理,其编程接口称为DPAPI.这一加密保护机制的边界是用户登录帐户或者本地计算机系统,使用操作系统设定的加密处 ...
- Truncated incorrect DOUBLE value: 'NO_REFUND'
解决办法:Mysql中,如果一个字段是字符串,则一定要加单引号 问题原因: `item_refund_state` ) NOT NULL item_refund_state字段的类型是varchar但 ...
- angular 与 layer 集成过程
layer 的提示框和弹层确实也好用,在使用angular的前提下,使用layer遇到诸多麻烦,记录下来. 在类型是1页面层,主要问题在遮罩方面,造成无法编辑. 开始:引入layer 样式,angul ...
- [转]Oracle中没有 if exists(...)
本文转自:http://blog.csdn.net/hollboy/article/details/7550171 对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法, ...
- Silverlight & Blend动画设计系列十三:三角函数(Trigonometry)动画之飘落的雪花(Falling Snow)
平时我们所看到的雪花(Falling Snow)飘飘的效果实际上也是一个动画,是由许多的动画对象共同完成的一个界面效果.对于不同大小的雪片可以通过缩放变换(ScaleTransform)功能特性确定, ...
- Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)
在Silverlight中自身并没有提供拖放功能的相关实现,要实现拖放功能得借助其事件支持(MouseLeftButtonDown.MouseLeftButtonUp和MouseMove)来完成,实际 ...
- angularJS请求参数 ajax
1. 使用angular服务请求 app.controller('main', function($scope, $http) { $scope.fun1 = function () { $http( ...
- Emmet使用方法
本文摘自:http://www.iteye.com/news/27580 Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语 ...
- Python基础学习总结(七)
9.类 面对对象编程Object Oriented Programming,简称OOP. 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来 ...
- spring框架-----轻量级的应用开发框架
一.bean 1.容器实例化 ApplicationContext ac= new ClassPathXmlApplicationContext("applicati ...