题目大意:给定第一个数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相关推荐

  1. 《算法入门经典大赛——培训指南》第二章考试

    UVa特别考试 UVa站点专门为本书设立的分类题库配合,方便读者提交: http://uva.onlinejudge.org/index.php?option=com_onlinejudge& ...

  2. 一位学长的ACM总结(感触颇深)

    发信人: fennec (fennec), 信区: Algorithm 标 题: acm 总结 by fennec 发信站: 吉林大学牡丹园站 (Wed Dec 8 16:27:55 2004) AC ...

  3. [搜索]UVa 129 困难的串

    题意:将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串. 输入样例: ...

  4. uva 401.Palindromes

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  5. 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 ...

  6. UVA 11752 超级幂

    UVA 11752 超级幂 Z - The Super Powers Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & ...

  7. UVa 11174 - Stand in a Line

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...

  8. UVa 10112 - Myacm Triangles

    UVa第一卷最后一题. 求内部不含点并且面积最大的三角形. 暴力. 代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #inclu ...

  9. UVa 10180 - Rope Crisis in Ropeland!

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=41&pa ...

最新文章

  1. 64位CentOs7源码安装mysql-5.6.35过程分享
  2. Java 关键字和语句
  3. java数组-如何在一堆数据中使用数组!
  4. 联想计算机BIOS开启Intel-vx,如何在计算机BIOS或UEFI固件中启用Intel VT-x | MOS86
  5. 每天都在支付,你真的了解信息流和资金流?
  6. ajax jquery php_基于Ajax jquery的使用php登录
  7. jvmti_JVMTI标记如何影响GC暂停
  8. python第十六课——ascii码
  9. android动态添加圆,Android开发中TextView 实现右上角跟随文本动态追加圆形红点
  10. java星号心形代码_肿么用JAVA打印出心形的图案
  11. python生成3d人体模型_无限想象空间,用Python就能玩的3D人体姿态估计
  12. 一笔四线连9点你可以吗
  13. ns手柄pc驱动_颜值、功能、手感同步在线 北通宙斯机械游戏手柄体验
  14. python扫描局域网端口和ip_我想用python扫描局域网内的ip和mac地址,需要什么第三方库...
  15. 多进程中的进程锁(互斥锁)
  16. Unix时间戳 怎么计算
  17. 一年前寫的:計算所得稅以及計算24點遊戲
  18. matlab绘制图形hold on_MATLAB中hold on和figure的区别?画三维图为什么一定要meshgrid?...
  19. 怎么用计算机求逆矩阵,计算机是怎么求解线性方程的(矩阵乘和求逆)
  20. html图片靠右浮动 文字左侧环绕,关于html:将图片浮动到右下角,文字环绕

热门文章

  1. 关于IE6.7.8.FF兼容的问题
  2. Background-size完美兼容IE
  3. js使用hover事件做一个“个人中心”的浮动层
  4. 链表!比数组更适合做增删操作的数据结构
  5. noip退役之路--祝福
  6. CachedIntrospectionResults 初始化
  7. 专2-第二课 Eclipse开发环境搭建
  8. 白话经典算法系列之中的一个 冒泡排序的三种实现
  9. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  10. linux技巧----查找某个正在执行的脚本