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);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

笨小熊 -- ACM解决方法

描述 笨小熊的词汇量很小&#xff0c;所以每次做英语选择题的时候都很头疼。但是他找到了一种方法&#xff0c;经试验证明&#xff0c;用这种方法去选择选项的时候选对的几率非常大&#xff01; 这种方法的具体描述如下&#xff1a;假设maxn是单词中出现次数最多的字母的出现…

uva 10710——Chinese Shuffle

题目大意&#xff1a;给定一个数n&#xff0c;然后洗牌n-1次问是否能回到初始状态&#xff0c;能回到则是jimmy—number&#xff0c;否则不是&#xff0c;具体怎么洗的&#xff0c;题中的图已经能够说明的很清楚&#xff0c;在此不再赘述&#xff01;思路&#xff1a;开始设了这…

括号配对问题 -- ACM解决方法

括号配对问题 &#xff08;栈的使用&#xff09;描述 现在&#xff0c;有一行括号序列&#xff0c;请你检查这行括号是否配对。 输入 第一行输入一个数N&#xff08;0<N<100&#xff09;,表示有N组测试数据。后面的N行输入多组输入数据&#xff0c;每组输入数据都是一…

中国剩余定理即孙子定理的五种解法

加深一下理解&#xff0c;找了点纯数学的资料&#xff08;老者善学&#xff0c;尤老骥伏枥&#xff0c;况乎我也&#xff09;&#xff1a;“中国剩余定理”是公元5-6世纪、我国南北朝时期的一部著名算术著作《孙子算经》中的一个“物不知数”的解法问题&#xff1a;今有物不知其…

阶乘因式分解(一) -- ACM解决方案

阶乘因式分解&#xff08;一&#xff09;描述 给定两个数m,n,其中m是一个素数。将n&#xff08;0<n<10000&#xff09;的阶乘分解质因数&#xff0c;求其中有多少个m。 输入 第一行是一个整数s&#xff08;0<s<100)&#xff0c;表示测试数据的组数随后的s行, 每…

uva 11490 ——Just Another Problem

题意&#xff1a;刚开始并没有看懂&#xff0c;耐着性子硬读下去&#xff0c;才勉强弄懂大意&#xff0c;英语也要加强训练啊&#xff01;题目是说你有s行c列士兵&#xff0c;然后带着他们去打仗&#xff0c;为了虚张声势&#xff0c;在士兵的中间缺了两个边长为r的洞&#xff…

uva 11728——Alternate Task

题意&#xff1a;及其无聊的一道题目&#xff0c;以前做STl专题的时候&#xff0c;曾经做过一道求一个数的所有约数之和的题目&#xff0c;该题和那道题刚好相反&#xff0c;是给你一个数的约数之和&#xff0c;问这个数可能是多少&#xff01;题目&#xff1a;还能咋办&#x…

uva 10110——Light, more light

题意&#xff1a;当时还挺绕人&#xff0c;讲的就是一个走廊里有n个灯&#xff0c;一个人&#xff08;疯了&#xff09;来回在走廊里转&#xff0c;走第i 圈的时候将灯数能够整除i的灯号改变一下开关&#xff0c;问最后的时候&#xff08;走n圈的&#xff09;最后一个灯是明还是…

uva 10515——Powers Et Al.

题意&#xff1a;这个题目题中的图片已经给的够清楚了&#xff0c;就算不怎么读题&#xff0c;也能yy大概的意思&#xff0c;况且题目也很短&#xff0c;很容易都出来就是给定 a&#xff0c;b&#xff0c;然后求a^b的个位数&#xff01;思路&#xff1a;开始想到了同余模&#…

查找杀人凶手

某地发生了谋杀案&#xff0c;以下为警方得到的4个嫌疑人的证词&#xff1a; A说: 不是我. B说: 是C. C说: 是D. D说: C在胡说. 已知三个人说的真话&#xff0c;一个人说的假话&#xff0c;请编写一个程序判断谁是凶手.&#xff08;摘自《Linux C编程实战》&#xff09; 代码如…

uva 10622——Perfect P-th Powers

题意&#xff1a;给定一个数n&#xff0c;求最大的一个数k使得nx^k。思路1&#xff1a;正规的做法是把这个素数分解&#xff0c;然后求指数的最大公约数就是所求&#xff08;听说有人取了最小值也能过&#xff0c;数据水吧&#xff01;&#xff09;&#xff0c;素数打表&#x…

6174问题 --ACM解决方法

6174问题 描述 假设你有一个各位数字互不相同的四位数&#xff0c;把所有的数字从大到小排序后得到a,从小到大后得到b,然后用a-b替换原来这个数&#xff0c;并且继续操作。例如&#xff0c;从1234出发&#xff0c;依次可以得4321-12343087、8730-3788352、8532-23586174&#…

关于第三周——回顾与修正

回顾了一下上个周情况&#xff0c;发现自己存在很多问题&#xff0c;比如说懒就是其中一个特别严重的吧&#xff0c;给自己的计划不能够坚持下来&#xff0c;给自己安排的任务也不能按时完成&#xff0c;比如下个周要干什么&#xff0c;明天做那些题&#xff0c;虽然给自己规划…

A+B Problem III -- ACM解决方法

AB Problem III 描述 求AB是否与C相等。输入 T组测试数据。 每组数据中有三个实数 A,B,C(-10000.0<A,B<10000.0,-20000.0<C<20000.0). 数据保证小数点后不超过4位。输出 如果相等则输出Yes 不相等则输出No样例输入 3 -11.1 11.1 0 11 -11.25 -0.25 1 2 4样例输…

uva 10127——ones

题意&#xff1a;就是给定一个数n&#xff0c;然后求一个10进制都是1的数&#xff0c;使其能整除n&#xff0c;求其位数&#xff0c;思路&#xff1a;以前做BFS的时候遇到类似的题目&#xff0c;当时用队列long long 模拟的&#xff0c;这个也是&#xff0c;不过重点的是要不断…

vim的常用命令

vim &#xff08;Linux下的文本编辑器&#xff09; a 在光标后添加文本A 在本行行末添加文本i 在光标前插入文本I 在本行开始插入文本o 在光标下插入新行O 在光标上插入新行dd 删除光标所在行 &#xff08;2dd即删除此下的两行&#xff0c;3dd以此类推&#xff09;p 粘贴u 取消…

uva 10061——How many zero\'s and how many digits ?

题意&#xff1a;这道题开始是卡了很久的&#xff0c;题意是给定一个数n然后让你求B进制下n&#xff01;有多少个零&#xff0c;和有多少位数&#xff0c;咋一看&#xff0c;是高精度&#xff0c;如果数论不是很熟系。思路&#xff1a;开始是直接抛弃高精度的一来是存不下&…

Linux文件与目录管理常用命令

改变文件属性与权限 chgrp [-R] dirname/filename 改变文件所属用户组 -R 递归更改chown [-R] 账号名称:组名 dirname/filename 改变文件所有者chmod 改变文件权限 urwx 文件所有者权限为rwxgrw 所属用户组权限为rw-or others权限为r–ax 所有权限加上x权限(a-x 略) 创建新…

uva 10673 ——Play with Floor and Ceil

题意&#xff1a;给定两个数n和m&#xff0c;对于n/m一个向上取整&#xff0c;一个向下取整&#xff0c;然后得到一个方程即P*floor(n/m&#xff09;q*ceil(n/m)n;求该公式中p和q的值的大小。思路&#xff1a;很明显&#xff0c;扩展的欧几里得方程&#xff0c;直接带入扩展欧几…

uva 756—— Biorhythms

题意&#xff1a;就是给定三个生理周期&#xff0c;然后从d天开始&#xff0c;问经过多少天后&#xff0c;三个周期会再度重合&#xff01;思路&#xff1a;这个题以前做过&#xff0c;当然现在看来&#xff0c;正解应该使用同余模方程和中国剩余定理&#xff0c;不过值得庆幸的…