题目地址:http://acm.fzu.edu.cn/contest/list.php?cid=113 A: 计数 /***************************************** ** Description: Given a string of number, and a prime P Get the number of numbers satisfying x*x = a(mod P), (0<=x<p) ** Algorithm: 高精度/单精度 *****************************************/ #include <iostream> #include <cmath> using namespace std; int cases, a, p; char bign[1010]; int MOD(char s[], int p) { int ans = 0; for (int i = 0; s[i]; i++) { ans = 10*ans+(s[i]-'0'); ans = ans % p; } return ans; } int main() { scanf("%d/n", &cases); while (cases--) { scanf("%s %d/n", bign, &p); a = MOD(bign, p); int ans = 0; for (int i = 0; i < p; i++) if ((pow(i,i) % p == a) ans++; printf("%d/n", ans); } } B:排列 C:计数 D:线段问题 E: F:ACM和ICPC数制 模拟题 G:LCS && EditPlus H:模拟题