捉迷藏|暴力枚举与玄学算法
2024-06-17 00:01:15
发布于:新加坡
51阅读
0回复
0点赞
第一题 - A23466.捉迷藏
题目链接跳转:A23466.捉迷藏
第一题算是一个签到题,题目要求给定两个数字 输出在 区间内不是 的任意数字。此题非常简单,可以暴力破解,也可以使用玄学算法。
暴力算法很好想,尝试 之间的所有数字即可,找到一个符合标准的结果就输出。
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
for (int i=0; i<=9; i++){
if (i != a * b){
cout << i << endl;
return 0;
}
}
return 0;
}
由于我们知道, 乘上任何数字都为 ,因此对于所有的测试点,只要 且 ,那么输出 即可(毕竟无论如何答案也都不会是 )。反之,输出任意一个非零的数字即可。玄学代码如下:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a, b;
cin >> a >> b;
cout << ((a != 0 && b != 0) ? 0 : 1) << endl;
return 0;
}
本题的 Python 代码如下(不得不说,用 Python 的代码量确实减少很多):
a, b = map(int, input().split())
print(0 if a != 0 and b != 0 else 1)
两个代码的时间复杂度都是 ,但是第二个算法的复杂度可以精确到 。
这里空空如也
有帮助,赞一个