----乘法逆元
欣君
追寻那如樱花般的绚烂
展开
-
51nod 1453 抽彩球
对于每种颜色,为了符合题意可以先将最后的球单独考虑。 对于第1种颜色,除去最后的球,有 c[1]-1 个球。在为空的序列上随机放置,有 C(c[i]-1,c[i]-1)=1 种放法,然后将被单独考虑的球放在末尾。 对于第2种颜色, 除去最后的球,有 c[2]-1 个球。在已有c[1]个球的序列上随机放置,有 C(c[1]+c[2]-1,c[2]-1) 种方法,然后将被单独考虑的球放在末尾。原创 2016-11-06 15:22:48 · 257 阅读 · 0 评论 -
51nod 1670 打怪兽
设dp[i]表示能打败第i-1个怪兽的概率。 dp[i+1]=dp[i]*(sum[i]-i)/(n-i) sum[i] 代表能量值不高于i的怪兽数量。 递推出所有的 dp[i] 后,对每种情况进行求解。 若最多能打败x个怪兽, 其概率为 dp[x]-dp[x+1] 。 #include using namespace std; const long long mod=1e9+7;原创 2016-11-07 00:39:11 · 334 阅读 · 0 评论 -
1225 余数之和
找规律。。。边界要特殊考虑。。。 #include using namespace std; const long long mod=1e9+7; long long multimod(long long x,long long y,long long mod) { long long ret=0; while(y) { if(y&1) ret=(ret+x)%mod;原创 2016-12-01 21:34:42 · 270 阅读 · 0 评论 -
51nod 1189 阶乘分数
(x-n!)*(y-n!)=(n!)^2 分解 n! 的质因数即可。分解时,需要优化下。 #include using namespace std; const int MAXN=1000100; const long long mod=1e9+7; int npri[MAXN],prime[MAXN],sum[MAXN]; long long powmod(long long x,lon原创 2016-12-08 19:22:00 · 270 阅读 · 0 评论 -
51nod 1161 Partial Sums
找规律可以得到,经过k次变换后,a[j]在i上的累加是a[j]*C(i-j+k-1,k-1)。 由于k-1不变,因此可以用递推公式 C(n+1,m)=C(n,m)*(n+1)/(n-m+1) 计算组合数。 #include using namespace std; const long long mod=1e9+7; const int MAXN=5050; long long a[MA原创 2017-02-12 11:22:28 · 313 阅读 · 0 评论