题解 P9203 时效「月岩笠的诅咒」

题目传送门

看到没有人发 Python 题解,本蒟蒻就来发一篇

思路

首先这道题可以通过操作使得 aa+1a\gets a+1bb+1b\gets b+1 , 故不论整数部分是多少,都能通过变换得到相同的整数部分。我们只需要对比小数部分是否相同即可。

Python 以不用写高精度出名,但是遇到非常小的数字(比如题目中的 1212 位小数),也会出现一些误差。

示意图

既然 Python 的 input() 是字符串形式,我们可以用字符串遍历,然后找到小数点的位置,对比小数点之后的数字是否相同即可。同理, C++ 也可以这么做。

AC 代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#python代码
a,b = input().split()
arra,arrb = [],[]
for i in a:
arra.append(i)
for i in b:
arrb.append(i)
arra = arra[arra.index(".")+1:len(arra)]
arrb = arrb[arrb.index(".")+1:len(arrb)]
flag = False
for i in range(len(arra)):
if(arra[i]!=arrb[i]):
flag = True
break
if(flag==True): print("NO")
else: print("YES")


1
2
3
4
5
6
7
8
9
10
11
12
13
//c++代码
#include<bits/stdc++.h>
using namespace std;

int main(){
string a,b;
cin >> a >> b;
a = a.substr(a.find(".")+1);
b = b.substr(b.find(".")+1);
if(a==b) cout << "YES";
else cout << "NO";
return 0;
}

Python AC 记录

C++ AC 记录


题解 P9203 时效「月岩笠的诅咒」
https://sunnyli.咕咕咕.eu.org/solution-P9203/
作者
SunnyLi
发布于
2023年4月22日
许可协议