【JAVA】POJ 1995 Raising Modulo Numbers 快速冪
思路
水题,每项用快速幂求解即可。
// An highlighted block
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int Z, M, H, B;
static long ASW, TMP_ASW, A;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Z = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int z = 1; z <= Z; z++) {
ASW = 0L;
M = Integer.parseInt(br.readLine());
H = Integer.parseInt(br.readLine());
for (int h = 0; h < H; h++) {
st = new StringTokenizer(br.readLine());
A = Long.parseLong(st.nextToken());
B = Integer.parseInt(st.nextToken());
TMP_ASW = 1L;
while (B > 0) {
if ((B & 1) > 0) {
TMP_ASW *= A;
TMP_ASW %= M;
}
B = B >> 1;
A *= A;
A %= M;
}
ASW += TMP_ASW;
ASW %= M;
}
System.out.println(ASW);
}
}
}