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 ...
最新文章
- mac os下valgrind的安装
- 你在付费听《说好不哭》,我在这里免费看直播还送书 | CSDN新书发布会
- 如何运营一个合法的经营性网站?办理经营性ICP证!
- Altium Designer中如何仅显示顶层的元件和顶层布线
- python os.system执行shell 命令
- Web前端工程师的一些常见误区介绍!
- 笔试题目1,欢迎留言评论
- 使用border-collapse:collapse;属性新建一个细线表格
- python中exit的作用_python __enter__ 与 __exit__的作用,以及与 with 语句的关系
- 关于ios手机上传图片旋转问题的解决
- 基于数据库实现分布式锁
- 未来新型计算机可能有,上海科学家构建出新型“DNA逻辑门”DNA分子有望成未来超级计算机...
- 抢红包案例分析附代码实现(一)
- Qt android 开发环境搭建
- 超详细的Elasticsearch高性能优化实践
- 如何使用百度地图实现当前定位
- 【数据治理】数字治理的效度、温度、 尺度
- 【Windows无法访问指定设备,路径或文件,您可能没有合适的权限访问】
- ffmpeg 音频合并
- solidworks的openGL选项是灰色的处理方法
热门文章
- 初识react(四) react中异步解决方案之 redux-saga
- 用CSS3来代替JS实现交互
- vue 动态显示三级路由
- 一个页面同时发起多个ajax请求,会出现阻塞情况
- 《深入理解Java虚拟机》读书笔记3--垃圾回收算法
- python学习(九) 网络编程学习--简易网站服务器
- Java多线程:线程间通信之volatile与sychronized
- Linq to SQL 的增删改查操作
- 精通init ramfs构建
- SQL Server 2000数据库移植到SQL Server 2008R2数据库服务器中碰到的”3145错误”及解决办法...