HDU6442(二项式)
要点
- 懒得打公式了,题解
- 把题目要求的复杂公式化简成熟悉的东西,一是看穿前面加个\(n!\)化为\(C_n^i,i为奇数\);二是将奇数的条件去掉的数学技巧。
- 形为\({(a + b\sqrt{B})}^n\)的快速幂
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
int T;
ll A, B, n, p;
ll prime[1000005];
void Init() {
for (int i = 1; i <= 1000; i++)
for (int j = i * i; j <= (int)1e6; j += i * i)
prime[j] = i;
}
ll ksm(ll a, ll b, ll n, ll mod) {
ll res = 1, ret = 0;
for (; n; n >>= 1) {
if (n & 1) {
ll t = res, p = ret;
res = (t * a % mod + p * b % mod * B % mod) % mod;
ret = (t * b % mod + p * a % mod) % mod;
}
ll tmp = a;
a = (a * a % mod + b * b % mod * B % mod) % mod;
b = 2LL * tmp % mod * b % mod;
}
return ret;
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
Init();
for (cin >> T; T--;) {
cin >> A >> B >> n >> p;
ll u = prime[B];
B = B / (u * u);
cout << 1 << " " << ksm(A, u, n, p) << " " << B << '\n';
}
}
HDU6442(二项式)的更多相关文章
- PRML读书会第二章 Probability Distributions(贝塔-二项式、狄利克雷-多项式共轭、高斯分布、指数族等)
主讲人 网络上的尼采 (新浪微博: @Nietzsche_复杂网络机器学习) 网络上的尼采(813394698) 9:11:56 开始吧,先不要发言了,先讲PRML第二章Probability Dis ...
- cf111D Petya and Coloring 组合数学,二项式反演
http://codeforces.com/contest/111/problem/D Little Petya loves counting. He wants to count the numbe ...
- hdu3483之二项式展开+矩阵快速幂
A Very Simple Problem Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- Codeforces 392C Yet Another Number Sequence (矩阵快速幂+二项式展开)
题意:已知斐波那契数列fib(i) , 给你n 和 k , 求∑fib(i)*ik (1<=i<=n) 思路:不得不说,这道题很有意思,首先我们根据以往得出的一个经验,当我们遇到 X^k ...
- [模板] 容斥原理: 二项式反演 / Stirling 反演 / min-max 容斥 / 子集反演 / 莫比乌斯反演
//待更qwq 反演原理 二项式反演 若 \[g_i=\sum_{j=1}^i {\binom ij} f_j\] , 则有 \[ f_i=\sum_{j=1}^i (-1)^{i-j} {i \ch ...
- 牛顿二项式与 e 级数
复习一下数学, 找一下回忆. 先是从二项式平方开始: 其实展开是这样的: 再看立方: 通过排列组合的方式标记, 于是: 通过数学归纳法可以拓展: 使用求和简写可得: e 级数 数学常数 e (The ...
- P4859 已经没有什么好害怕的了(dp+二项式反演)
P4859 已经没有什么好害怕的了 啥是二项式反演(转) 如果你看不太懂二项式反演(比如我) 那么只需要记住:对于某两个$g(i),f(i)$ ---------------------------- ...
- C++ 中递归实现 二项式展开式(a+b)^ n 的表达式
C++ 中递归实现 二项式展开式 的表达式 前几天,一个数学系读研的同学来问有什么软件可以来求 (a+b)^n 这种表达式类型的展开式,我随口一说了 Octave , 毕竟这个开源的还是可以的,后来他 ...
- GMA Round 1 二项式展开
传送门 二项式展开 求$(2x-y+\frac{3}{x}+4z)^{12}$展开式中不含x的任意非0次幂的项的系数和. 用排列组合的思想,相当于在12个括号里选项出来.先把$2x$和$\frac{3 ...
随机推荐
- html5--1.19 通用属性
html5--1.19 通用属性 学习要点: 1.通用属性的概念及几个常用的通用属性2.对属性值的若干点补充 通用属性 通用属性(全局属性)可以用于任何的HTML5元素:通用属性有十几种:这节课不会全 ...
- Linux_学习_01_常用命令大全
一.文件目录 1.列出目录 ls -a #显示隐藏文件 -l #显示文件和目录的详细资料 -h -lrt tree #显示文件和目录由根目录开始的树形结构 lstree #显示文件和目录由根目录开始的 ...
- (转)linux 打开文件数 too many open files 解决方法
too many open files 出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值. 查看每个用户最大允许打开文件数量 ulimit -a fdipzone@ubuntu: ...
- 数据库关键字 (Oracle, SQL Server, DB2)
Oracle SQL Server DB2 ! @@IDENTITY DETERMINISTIC & ADD DISALLOW ( ALL DISCONNECT ) ...
- 非常好的LINUX学习者博客
http://blog.csdn.net/qq_21794823/article/category/6496200
- caffe Dtype
http://blog.luoyetx.com/2015/10/reading-caffe-2/
- 使用二次封装的openStack发行版本网卡至少有2个
- 导出数据到EXCEL并生成多个Sheet
一.准备工作 引用:Microsoft.Office.Interop.Excel 准备多个DataTable数据添加到DataSet中. 二.代码 public void CreateExcel(Da ...
- thymeleaf控制view的返回格式
package com.ailk.dd1.jike.web.config; import nz.net.ultraq.thymeleaf.LayoutDialect; import org.sprin ...
- [hdu2063]过山车(二分图匹配)
题意:每个女人有感兴趣的k个男人,过山车两人一组,求最大匹配数. 解题关键:二分图最大匹配.匈牙利算法求解. 1.链式前向星建图 #include<cstdio> #include< ...