P1405 苦恼的小明

题目描述

黄小明和他的合伙人想要创办一所英语培训机构,注册的时候要填一张个人情况的表格,在身高一栏小明犯了愁。

身高要求精确到厘米,但小明实在太高了,无法在纸上填下这么长的数字。小明花钱买通了办事人员,于是只要写上他的身高模10007的结果就行了。

可小明不会取模,想起前几天请你帮他解决了水库的问题,于是又来找你帮忙。

输入输出格式

输入格式:

输入:(hehe.in)

小明的身高用A1^A2^...^An表示,第一行输入n,第二行输入n个正整数表示A1至An。

输出格式:

输出:(hehe.out)

一个数字表示小明身高mod 10007的值。

数据范围:

所有的0<=Ai<10000

第1~6数据点满足n=2

第7~10数据点满足n=3

第11个数据点满足n=1234567

(前六个数据会逐渐变大,照顾一下取模没弄清楚的同学。另外没有必要尝试对a1进行0或1的判断来骗分,估计是骗不到的。当然了,如果自认为运气好的人可以试试看,我

输入输出样例

输入样例#1: 复制

2
17 747
输出样例#1: 复制

173

说明

数据范围:

所有的0<=Ai<10000

第1~6数据点满足n=2

第7~10数据点满足n=3

第11个数据点满足n=1234567

(前六个数据会逐渐变大,照顾一下取模没弄清楚的同学。另外没有必要尝试对a1进行0或1的判断来骗分,估计是骗不到的。当然了,如果自认为运气好的人可以试试看,我也阻止不了你。)

(a^b)mod m=(a^(b%phi(m)))mod m

54分

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define N 1300000
#define mod 10007
using namespace std;
int n,m,a[N],ans;
int read()
{
    ,f=; char ch=getchar();
    ;ch=getchar();}
    +ch-',ch=getchar();
    return x*f;
}
int phi(int x)
{
    int sum=x;
    ==)
    {
        ==) x/=;
        sum/=;
    }
    ;i*i<=x;i++)
     )
     {
         ) x/=i;
         sum=sum/i*(i-);
     }
    );
    return sum;
}
int qpow(int a,int b,int p)
{
    ;
    while(b)
    {
        ) res=1ll*res*a%p;
        a=1ll*a*a%p,b>>=;
    }return res;
}
int main()
{
    n=read();m=phi(mod);
    ;i<=n;i++)
     a[i]=read();ans=a[];
    ;i<=n;i++)
     ans=qpow(ans,a[i]%  ,mod);
    printf("%d",ans);
    ;
}

54分

#include<cstdio>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
;
;
];
int phi[NN],vis[NN],prime[NN];
int ans,tot,n;
int gphi(){//这是个欧拉函数
    phi[]=;
    ;i<=NN;i++){
        if(!vis[i]){
            prime[++tot]=i;
            phi[i]=i-;
        }
        ;j<=tot;j++){
            if(i*prime[j]>NN)break;
            vis[i*prime[j]]=;
            ){
                phi[i*prime[j]]=phi[i]*prime[j];
            }
            else{
                phi[i*prime[j]]=phi[i]*(prime[j]-);
            }
        }
    }
}
int qpow(int a,int k,int p){//quick pow 水
    );
    ,p)%p;
    t=(t*t)%p;
    )t=(t*a)%p;
    return t;
}
int modex(int k,int x){//a^b mod m=a^(b mod phi(m)) mod m
    if(x==n)return a[x]%k;
    );
    int tt=qpow(a[x],kt,k);
    //cout<<a[x]<<' '<<kt<<' '<<k<<' '<<tt<<endl;
    return tt;
}
int main(){
    gphi();
    scanf("%d",&n);
    ;i<=n;i++)scanf("%d",&a[i]);
    ans=modex(pp,);
    printf("%d",ans);//好神奇竟然过了
    ;
}

最新文章

  1. js简单解密(eval解密)
  2. Mysql锁初步
  3. codeforces 489B. BerSU Ball 解题报告
  4. 从java 转到 c# 知识点
  5. HDU 2196 Computer (树dp)
  6. Android_GestureDetector
  7. struts2加入自定义的actionValidatorManager实现类
  8. 关于GestureDetector.OnGestureListener的onScroll参数distance问题
  9. iOS UITableViewCell透明度 和 cell文字居中
  10. 头文件 boost/cstdint.hpp
  11. 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现
  12. Python实战之Selenium自动化测试web刷新FW
  13. LINQ学习系列-----2.1 一个Linq语句
  14. TCP协议的性能评测工具 — Tcpdive开源啦
  15. 羽翼metasploit第一,二季学习笔记
  16. Centos7快速安装haproxy
  17. 安装 telnet
  18. SRM473
  19. Android Studio 1.1.0 向导页(首页) 解析,以及版本控制 (SVN 和 GIT 的检出)
  20. cqlsh 一个错误

热门文章

  1. HDU 6191 Query on A Tree(可持久化Trie+DFS序)
  2. 【题解】NOI2014购票
  3. [UVA1625]Color Length
  4. 洛谷 P2501 [HAOI2006]数字序列 解题报告
  5. Codeforces Round #487 (Div. 2) A Mist of Florescence (暴力构造)
  6. lesson 4 再谈继承多态,抽象类和接口
  7. bzoj1833: [ZJOI2010]count 数字计数 &amp;&amp; codevs1359 数字计数
  8. DotNETCore 学习笔记 全球化和本地化
  9. compositionstart 、 compositionend 、 input都存在时的解决办法
  10. algorithm ch15 FastWay