博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu5794
阅读量:7059 次
发布时间:2019-06-28

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

从(u,v)到(n,m)相当于走x步1*2和y步2*1满足 x+2y=n-u,2x+y=m-v

解方程然后组合计数即可。

以前没写过lucas定理,写一下……

其实就是C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p

顺便这题的容斥有特殊性,只要把点排序,然后用f[i]表示到第i个障碍且路上没有经过其他障碍的方案即可,O(c^2)转移即可

1 #include
2 #include
3 #include
4 #include
5 #include
6 typedef long long ll; 7 using namespace std; 8 const int mo=110119; 9 struct node{ll x,y;} a[110];10 int f[110],jc[mo+1],ni[mo+1];11 ll n,m;12 int t,tt;13 bool cmp(node a,node b)14 {15 if (a.x==b.x) return a.y
>=1;26 }27 return s;28 }29 30 int c(int n,int m)31 {32 if (n<0||m<0||m>n) return 0;33 else return 1ll*jc[n]*ni[m]%mo*ni[n-m]%mo;34 }35 36 int lucas(ll n,ll m)37 {38 if (n<0||m<0||m>n) return 0;39 int ans=1;40 while (n||m)41 {42 ans=1ll*ans*c(n%mo,m%mo)%mo;43 n/=mo; m/=mo;44 }45 return ans;46 }47 48 int main()49 {50 jc[0]=1; ni[0]=1;51 for (int i=1; i
View Code

 

转载于:https://www.cnblogs.com/phile/p/5806724.html

你可能感兴趣的文章
Git 安装与简单使用(新手必看)
查看>>
leetcode-143. Reorder List
查看>>
怎样解决if __name__ == "__main__":下面的代码没有执行的问题
查看>>
python从入门到实践-6章字典
查看>>
glusterfs 步骤
查看>>
浅谈gibbs sampling(LDA实验)
查看>>
Asp.net 后台添加CSS、JS、Meta标签
查看>>
JDBC连接SQL Server2008基本格式及示例代码 (转载收藏~)
查看>>
以前的GHOST系统没落,现在 原版WINDOWS更新节奏还快 MSDN itellyou
查看>>
scala学习手记21 - 传递变长参数
查看>>
一些JavaScript中的DOM的优化小技巧
查看>>
用PrintStream向文件输入内容
查看>>
412. Fizz Buzz
查看>>
Uva 10879 - Code Refactoring
查看>>
控制总线上发送的控制信息
查看>>
c#解析xml
查看>>
每日一句(15)
查看>>
读书笔记--SQL必知必会--建立练习环境
查看>>
捕获、冒泡
查看>>
C# 递归获取 文件夹的 所有文件
查看>>