codevs 1455 路径 计算m^n%p
小明从A1到An+1,他知道从A1到A2,从A2到A3,......,从An到An+1都有m条路,且从A1到An+1都只有这些路。小明想知道,从A1地到An+1地共有多少种方法,由于答案可能会很大,小明只要你输出总方案数mod k。
输入共1行,三个正整数m,n,k
输出共1行,表示答案
3 2 100
9
假设从A1到A2的所有路为W1,W2,W3,从A2到A3的所有路为W4,W5,W6
方案如下:
W1>>W4
W2>>W4
W3>>W4
W1>>W5
W2>>W5
W3>>W5
W1>>W6
W2>>W6
W3>>W6
共9种方案
对于100%的数据,m,k≤1,000,000,000,n≤101,000,000
#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <map>
#include <set>
#include <string>
#include <queue>
#include <stack>
#include <bitset>
using namespace std;
#define pb(x) push_back(x)
#define ll long long
#define mk(x, y) make_pair(x, y)
#define lson l, m, rt<<1
#define mem(a) memset(a, 0, sizeof(a))
#define rson m+1, r, rt<<1|1
#define mem1(a) memset(a, -1, sizeof(a))
#define mem2(a) memset(a, 0x3f, sizeof(a))
#define rep(i, n, a) for(int i = a; i<n; i++)
#define fi first
#define se second
typedef pair<int, int> pll;
const double PI = acos(-1.0);
const double eps = 1e-;
const int mod = 1e9+;
const int inf = ;
const int dir[][] = { {-, }, {, }, {, -}, {, } };
ll p;
ll get_phi(ll n)
{
ll res = n,i,j;
for(i=;i*i<=n;i++)
{
if(n%i==)
{
n=n/i;
while(n%i==)
n=n/i;
res=res/i*(i-);
}
if(n<(i+))
break;
}
if(n>)
res = res/n*(n-);
return res;
}
ll pow(ll a, ll b) {
ll ret = ;
while(b) {
if(b&)
ret = ret*a%p;
a = a*a%p;
b>>=;
}
return ret;
}
int main()
{
int m;
string n;
cin>>m>>n>>p;
ll phi = get_phi(p);
ll tmp = ;
for(int i = ; i<n.size(); i++) {
tmp = tmp*+n[i]-'';
tmp %= phi;
}
tmp += phi;
ll ans = pow(1LL*m, tmp)%p;
cout<<ans<<endl;
return ;
}
codevs 1455 路径 计算m^n%p的更多相关文章
- vue-router路径计算问题
简书原文 昨天刚刚发表了一个前端跨域新方案尝试,今天在开发中就遇到的了问题. 起因 前端使用的是vue-router组件的history模式,但是由于我们的整个页面都是从static(静态资源站)lo ...
- python实现基于百度路径规划接口的坐标对获取两点驾车距离的计算
今天为大家介绍一种通过python实现坐标对间距离数据的获取方法.接口采用百度开发的路径规划接口. 1.调用接口: 接口:(传入起点坐标串,结束坐标串:ak值需要注册百度开发者) 接口详细说明 htt ...
- (转)pathlib路径库使用详解
原文:https://xin053.github.io/2016/07/03/pathlib%E8%B7%AF%E5%BE%84%E5%BA%93%E4%BD%BF%E7%94%A8%E8%AF%A6 ...
- strut2以及路径的一些问题
Struts2一个Action内包含多个请求处理方法的处理,method的使用方法,struts2中 struts2的关于method=“{1}"意思详解 <action name ...
- iOS第三方地图-高德地图(导航sdk路径规划)
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 58同城笔试题:数组去重;分饼干(分糖果);最小路径和(leetcode64)
1. 数组去重 题目描述 /** * 有序数组去重 * 输出最终的数字个数 * 输入:1,2,2 * 输出:2 * @author Turing * */ 代码 import java.util.*; ...
- .net持续集成cake篇之常见文件及路径操作
系列目录 Cake常见文件和路径操作 在自动化构建任务里,很多操作都是跟文件打交道,比如文件打包,文件压缩,文件归档,文件传输,目录清理等.本节介绍一些cake里常见的文件操作方法 Cake相对路径问 ...
- Go语言:如何解决读取不到相对路径配置文件问题
背景 项目交叉编译为可执行文件之后,在其他目录执行文件时提示找不到配置文件 2020/03/14 20:44:23 配置文件读取失败 open config.ini: no such file or ...
- 【路径规划】 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame (附python代码实例)
参考与前言 2010年,论文 Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame 地址:https ...
随机推荐
- 关于我和document.write那点不得不说的事
一直用document.write()方法向浏览器中显示数据用,把它当做Alert()使用, 看来这样用有些大材小用了,下面说说它的主要用处. document.write()方法可以用在两个方面: ...
- javascript高级知识点——继承
代码信息来自于http://ejohn.org/apps/learn/. 继承是如何工作的 function Person(){} function Ninja(){} Ninja.prototype ...
- HTML界面JQuery ajax 返回200,但走Error方法
原因是JSON拼装的有问题. 都需要放在双引号里面,或者修改dataType的类型为 "html". http://blog.csdn.net/imjcoder/article/ ...
- leetcode Sudoku Solver python
#the define of Sudoku is on this link : http://sudoku.com.au/TheRules.aspx Write a program to solve ...
- CSS 技术关键字
CSS 技术关键字 元素 替换元素 非替换元素------替换元素和非替换元素的分类是CSS范畴内的,其它的分类都不属于CSS定义的 替换元素和非替换元素的定义是出于“我 ...
- ArrayList与LinkedList时间复杂度之对比
package ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections ...
- WordPress下载安装简单配置实例
1.下载https://cn.wordpress.org/ 2.复制wp-config-sample.php为wp-config.php 3.创建一个wordpress数据库 4.修改wp-confi ...
- python Memo
list&tuple 运算 乘以constant >>> x = ((1,2),) >>> x*2 ((1, 2), (1, 2)) >>> ...
- verilog中=和<=的区别
一般情况下使用<=,组合逻辑使用=赋值,时序逻辑使用<=赋值: 举个例子:初始化m=1,n=2,p=3:分别执行以下语句 1.begin m=n:n=p:p=m: end 2.begin ...
- the C programming language 阅读笔记1
读了一遍著名的<the C programming language>,果然如听说的一样,讲解基础透彻,案例简单典型,确实自己C语言还有很多细节点不是很清楚. 总结一下阅读的收获(部分原书 ...