URAL 1994 The Emperor's plan 求组合数 大数用log #include<functional> #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<vector> #include<cmath> #include<string> #include<queue>…
期望$dp$. $dp[i][j]$表示第$1$种人有$i$个,第$2$种人有$j$个的情况下,到达目标状态的期望值.初始化$dp[i][0]=i$. 枚举一下这个状态死多少人,取个$max$,最后$dp[n-k][k]$就是答案. #include<map> #include<set> #include<ctime> #include<cmath> #include<queue> #include<string> #include&…
Saving Beans http://acm.hdu.edu.cn/showproblem.php?pid=3037 #include<cstdio> typedef __int64 LL; ; class LUCAS { //lucas求组合数C(n,k)%p LL F[M]; LL inv(LL a,LL mod) { ) ; return inv(mod%a,mod)*(mod-mod/a)%mod; } void init(LL p) { F[]=; ; i<=p; i++)…
int f(int n,int p) { ) ; return f(n/p,p) + n/p; } https://www.xuebuyuan.com/2867209.html 求组合数C(n,m)(modp) C(n,m)=n!/(m!*(n-m)!) ,只要对分子和分母分别分解素因子,然后因为C(n,m)肯定是整数,所以C(n,m)肯定可以表示成p1^t1*p2^t2*......pi^ti的形式,只要拿分子素因子的幂减去分母对应的素因子的幂即可.…
在O(n)的时间内求组合数.求逆元.求阶乘.·.· #include <iostream> #include <cstdio> #define ll long long ;//1e5越界 ; using namespace std; ll fac[N]={,},inv[N]={,},fi[N]={,};//fac[i]是i的阶乘,inv[i]是i的逆元,fi[i]是i之前的很多逆元求得阶乘,(将除i取模变为乘i的逆元取模 void init() { ;i<N;i++) { f…
题意:有K个棋子在一个大小为N×N的棋盘.一开始,它们都在棋盘的顶端,它们起始的位置是 (1,a1),(1,a2),...,(1,ak) ,它们的目的地是 (n,b1),(n,b2),...,(n,bk). 一个位于 (r,c) 的棋子每一步只能向右走到 (r,c+1) 或者向下走到 (r+1,c) . 我们把 i 棋子从 (1,ai) 走到 (n,bi) 的路径记作 pi . 你的任务是计算有多少种方案把n个棋子送到目的地,并且对于任意两个不同的棋子 i,j ,使得路径 pi 与 pj 不相交…
求组合数 如果求C5 3 就是5*4*3/3*2*1 也就是(5/3)*(4/2)*(3/1) Sample Input5 //T3 2 //C3 25 34 43 68 0 Sample Output310101 # include <iostream> # include <cstdio> # include <cstring> # include <algorithm> # include <cmath> # define LL long…
一 递归求组合数 设函数为void    comb(int m,int k)为找出从自然数1.2.... .m中任取k个数的所有组合. 分析:当组合的第一个数字选定时,其后的数字是从余下的m-1个数中取k-1数的组合.这就将求m个数中取k个数的组合问题转化成求m-1个数中取k-1个数的组合问题. 设函数引入工作数组a[ ]存放求出的组合的数字,约定函数将确定的k个数字组合的第一个数字放在a[k]中,当一个组合求出后,才将a[ ]中的一个组合输出.第一个数可以是m.m-1.....k,函数将确定组…
瞬间移动 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 205    Accepted Submission(s): 109 Problem Description 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右下方格子,并瞬移过去(如从下图中的红色格子能直接瞬移到蓝色格子),求到第n行第m列的格子有几种…
任意门:http://codeforces.com/contest/689/problem/E E. Mike and Geometry Problem time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Mike wants to prepare for IMO but he doesn't know geometry, so…