Random
先学了下快速幂和逆元
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
LL qmi(int a, int b, int p)
{
LL res = 1 % p;
while (b)
{
if (b & 1) res = res * a % p;
a = a * (LL)a % p;
b >>= 1;
}
return res;
}
int main()
{
int n;
scanf("%d", &n);
while (n -- )
{
int a, b, p;
scanf("%d%d%d", &a, &b, &p);
printf("%lld\n", qmi(a, b, p));
}
return 0;
}
快速幂求逆元:
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
LL qmi(int a, int b, int p)
{
LL res = 1;
while (b)
{
if (b & 1) res = res * a % p;
a = a * (LL)a % p;
b >>= 1;
}
return res;
}
int main()
{
int n;
scanf("%d", &n);
while (n -- )
{
int a, p;
scanf("%d%d", &a, &p);
if (a % p == 0) puts("impossible");
else printf("%lld\n", qmi(a, p - 2, p));
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n;
int a[1000005];
void solve(){
cin>>n;
for(int i=0;i<=n;++i){
cin>>a[i];
}
for(int i=n;i>0;--i){
a[i-1]+=a[i]/2;
}
if(a[0]) cout<<"Alice\n";
else cout<<"Bob\n";
}
int main(){
std::ios::sync_with_stdio(false);
cin.tie(0);
int t=1;cin>>t;
for(int i=1;i<=t;++i){
solve();
}
return 0;
}