uva 10692——Huge Mods
题目大意:给定第一个数M,后面有n的数,求解a[1]^a[2]^a[3]^…..%m的解
思路:开始的时候并不知道从哪里下手,一开始收到前面某题除4的印象,然后一直对4取余,知道a[1],计算后发现那一套只适用于求解最后一位的情况,苦思敏想不得其解,最后不得不去找答案,原来涉及到剩余系定理,即a^b=a^(b%phi[M])+phi[M])(phi[M]为M的欧拉函数) 如此一来,只是不断调用求解函数到最后一个即可。
Code:
#include <iostream> #include <cstdio> #include <cmath> #include <string> #include <cstring> #include <algorithm> using namespace std;typedef long long ll; const int N=10005; int n,m; int a[15],phi[N];void tab() {for (int i=2;i<=N;i++) phi[i]=0;phi[1]=1;for (int i=2;i<=N;i++){if (phi[i]) continue;for (int j=i;j<N;j+=i){if (!phi[j]) phi[j]=j;phi[j]=phi[j]/i*(i-1);}} } int pow_mod(int a,int n,int m) {int ans=1;while (n){if (n%2==1) ans=ans*a%m;n/=2;a=a*a%m;}return ans; } int cal(int i,int m) {//cout<<"bug"<<endl;if (i==n-1) return a[i]%m;int t=cal(i+1,phi[m]);//cout<<"bug"<<endl;return pow_mod(a[i],t+phi[m],m); } int main() {tab();int ca=1;while (cin>>m){scanf("%d",&n);for (int i=0;i<n;i++)scanf("%d",&a[i]);int ans=cal(0,m);printf("Case #%d: %d\n",ca++,ans);} }
uva 10692——Huge Mods相关推荐
- 《算法入门经典大赛——培训指南》第二章考试
UVa特别考试 UVa站点专门为本书设立的分类题库配合,方便读者提交: http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...
- 一位学长的ACM总结(感触颇深)
发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...
- [搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...
- uva 401.Palindromes
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- Uva 3767 Dynamic len(set(a[L:R])) 树套树
Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...
- UVA 11752 超级幂
UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & ...
- UVa 11174 - Stand in a Line
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVa 10112 - Myacm Triangles
UVa第一卷最后一题. 求内部不含点并且面积最大的三角形. 暴力. 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #inclu ...
- UVa 10180 - Rope Crisis in Ropeland!
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=41&pa ...
最新文章
- 64位CentOs7源码安装mysql-5.6.35过程分享
- Java 关键字和语句
- java数组-如何在一堆数据中使用数组!
- 联想计算机BIOS开启Intel-vx,如何在计算机BIOS或UEFI固件中启用Intel VT-x | MOS86
- 每天都在支付,你真的了解信息流和资金流?
- ajax jquery php_基于Ajax jquery的使用php登录
- jvmti_JVMTI标记如何影响GC暂停
- python第十六课——ascii码
- android动态添加圆,Android开发中TextView 实现右上角跟随文本动态追加圆形红点
- java星号心形代码_肿么用JAVA打印出心形的图案
- python生成3d人体模型_无限想象空间,用Python就能玩的3D人体姿态估计
- 一笔四线连9点你可以吗
- ns手柄pc驱动_颜值、功能、手感同步在线 北通宙斯机械游戏手柄体验
- python扫描局域网端口和ip_我想用python扫描局域网内的ip和mac地址,需要什么第三方库...
- 多进程中的进程锁(互斥锁)
- Unix时间戳 怎么计算
- 一年前寫的:計算所得稅以及計算24點遊戲
- matlab绘制图形hold on_MATLAB中hold on和figure的区别?画三维图为什么一定要meshgrid?...
- 怎么用计算机求逆矩阵,计算机是怎么求解线性方程的(矩阵乘和求逆)
- html图片靠右浮动 文字左侧环绕,关于html:将图片浮动到右下角,文字环绕