AcWing-周赛 第95场题解
T1:AcWing 4873. 简单计算
给定四个整数 x1,y1,x2,y2,请你计算 max(|x1−x2|,|y1−y2|)。
输入格式
第一行包含两个整数 x1,y1。
第二行包含两个整数 x2,y2。
输出格式
一个整数,表示 max(|x1−x2|,|y1−y2|)的值。
数据范围
前 44 个测试点满足 −10≤x1,y1,x2,y2≤10。
所有测试点满足 −10e9≤x1,y1,x2,y2≤10e9。
输入样例1
输出样例1
输入样例2:
输出样例2
题解
1 2 3 4 5 6 7 8 9 10
| #include <iostream> using namespace std;
int main() { int x1,x2,y1,y2; cin >> x1 >> y1 >> x2 >> y2; cout << max(abs(x1 - x2), abs(y1 - y2)); return 0; }
|
T2:AcWing 4874.约数
如果一个正整数的约数个数恰好为 33,则称该数为美丽数。
给定 n个正整数 a1,a2,…,an, 请你依次判断每个数是否是美丽数。
输入格式
第一行包含整数 n。
第二行包含 n个整数 a1,a2,…,an。
输出格式
共 n行,其中第 i行输出对 ai的判断,如果 ai是美丽数,则输出 YES,否则输出 NO。
数据范围
前 6个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤105,1≤ai≤10121。
输入样例
输出样例
题解
参考y总的讲解,优化处理yyds!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include <cstdio> #include <iostream> #include <cmath> using namespace std;
const int N = 1e6 + 10; int primes[N]; bool st[N]; typedef long long LL;
void get_primes(int n) { int cnt = 0; st[1] = true; for (int i = 2; i <= n; i ++) { if (!st[i]) primes[cnt ++] = i; for (int j = 0; primes[j] * i <= n; j ++) { st[primes[j] * i] = true; if (i % primes[j] == 0) break; } } }
int main() { get_primes(N - 1); int n; scanf("%d", &n); while (n --) { LL x; scanf("%lld", &x); LL r = sqrt(x); if (r * r == x && !st[r]) puts("YES"); else puts("NO"); } return 0; }
|
ps:
完全平方数定义,若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。
eg. 36 = 6 * 6, 称36为完全平方数。
参考资料:
T2视频讲解
数据范围
完全平方数
判断一个数是否为素数时,只需开平方根
相关例题:
质数(语法题)
枚举约数题
参考资料
同类题解【蓝桥杯集训·周赛】AcWing 第 95 场周赛