1.
https://cn.vjudge.net/contest/317382#problem/E
人见人爱A^B
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b;
ll qmod(ll a,ll b,ll m)
{
ll ans=1;
while(b)
{
if(b&1) ans=ans*a%m;
a=a*a%m;
b>>=1;
}
return ans;
}
int main()
{
while(cin>>a>>b && (a||b))
cout<<qmod(a,b,1000)<<"
";
return 0;
}
2.
Rightmost Digit
https://cn.vjudge.net/contest/317382#problem/D
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll t,a;
ll qmod(ll a,ll b,ll m)
{
ll ans=1;
while(b)
{
if(b&1) ans=ans*a%m;
a=a*a%m;
b>>=1;
}
return ans;
}
int main()
{
cin>>t;
while(t--)
{
cin>>a;
cout<<qmod(a,a,10)<<endl;
}
return 0;
}
3.
https://cn.vjudge.net/contest/317382#problem/A4.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a,b,m;
ll qmod(ll a,ll b,ll m)
{
ll ans=1;
while(b)
{
if(b&1) ans=ans*a%m;
a=a*a%m;
b>>=1;
}
return ans;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>a>>b>>m;
cout<<qmod(a,b,m)<<endl;
}
return 0;
}
4.
Raising Modulo Numbers
https://cn.vjudge.net/contest/317382#problem/B
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
ll T,M,H,a,b,res;
ll qmod(ll a,ll b,ll m)
{
ll ans=1;
while(b)
{
if(b&1) ans=ans*a%m;
a=a*a%m;
b>>=1;
}
return ans;
}
int main()
{
scanf("%lld",&T);
while(T--)
{
res=0;
scanf("%lld%lld",&M,&H);
while(H--)
{
scanf("%lld%lld",&a,&b);
res=(res+qmod(a,b,M))%M;
}
printf("%lld
",res);
}
return 0;
}
5.
这是一道难题:ZOJ1333
https://cn.vjudge.net/contest/317382#problem/C