谁能帮我优化一下代码,重重有赏!
链接->https://atcoder.jp/contests/abc298/tasks/abc298_d我的代码:
mod = 998244353
s = "1"
q = int(input())
for i in range(q):
query = input().split()
if query == "1":
s += query
elif query == "2":
s = s
else:
num = int(s) % mod
print(num)
TLE了,有哪位大神帮我优化一下代码,谢谢! 本帖最后由 liuhongrun2022 于 2023-4-15 21:46 编辑
注:并非我写
实测 AC
from collections import deque
mod = 998244353
arr = deque()
num = 1
q = int(input())
for i in range(q):
op = input().split()
if op == '1':
x = int(op)
arr.append(x)
num = (num * 10 + x) % mod
elif op == '2':
x = arr.popleft()
num = ((num - x * pow(10, len(arr), mod)) % mod + mod) % mod
else:
print(num)
顶 进去链接404了 liuhongrun2022 发表于 2023-4-15 21:13
进去链接404了
稍等 sfqxx 发表于 2023-4-15 21:17
稍等
能用了 liuhongrun2022 发表于 2023-4-15 21:18
能用了
会吗? 本帖最后由 liuhongrun2022 于 2023-4-15 21:41 编辑
sfqxx 发表于 2023-4-15 21:30
会吗?
AC,但是问了gpt 你的代码已经很好了,但是可以使用一个变量来记录当前的字符串长度,从而避免在每次删除首位数字时都需要切片。以下是优化后的代码:
mod = 998244353
s = "1"
length = 1
q = int(input())
for i in range(q):
query = input().split()
if query == "1":
s += query
length += 1
elif query == "2":
s = s
length -= 1
else:
num = int(s) % mod
print(num)
这个优化可以提高代码的性能,因为在每次删除首位数字时,不再需要对整个字符串进行切片。 isdkz 发表于 2023-4-15 21:45
你的代码已经很好了,但是可以使用一个变量来记录当前的字符串长度,从而避免在每次删除首位数字时都需要切 ...
你的代码RE了 liuhongrun2022 发表于 2023-4-15 20:58
注:并非我写
实测 AC
哪个GPT,这么厉害? sfqxx 发表于 2023-4-15 22:26
你的代码RE了
试试这个:
from collections import deque
import array
mod = 998244353
s = deque(array.array("I", ))# 使用array模块创建整数数组
current_mod = 1
q = int(input())
# 预计算10的幂次模值
pow_10_mod =
for _ in range(q):
pow_10_mod.append((pow_10_mod[-1] * 10) % mod)
for i in range(q):
query = input().split()
if query == "1":
s.append(int(query))
current_mod = (current_mod * 10 + int(query)) % mod
elif query == "2":
current_mod = (current_mod - s.popleft() * pow_10_mod) % mod
else:
print(current_mod)
isdkz 发表于 2023-4-15 22:38
试试这个:
sfqxx 发表于 2023-4-15 22:46
好吧,难道我的gpt不够厉害,还是我不会问?{:10_277:} isdkz 发表于 2023-4-15 23:14
好吧,难道我的gpt不够厉害,还是我不会问?
我觉得是……
题目的问题{:10_244:} isdkz 发表于 2023-4-15 23:14
好吧,难道我的gpt不够厉害,还是我不会问?
你重新问问试试看?
所有题目,信息都复制进去 sfqxx 发表于 2023-4-15 23:17
你重新问问试试看?
所有题目,信息都复制进去
我全部复制进去了,连着问好几次得到的代码才能AC,评测不如liuhongrun2022的那个代码优 isdkz 发表于 2023-4-15 23:22
我全部复制进去了,连着问好几次得到的代码才能AC,评测不如liuhongrun2022的那个代码优
到时候问问他吧
对了,qq通过一下
您的chATgpt是那个网页的? sfqxx 发表于 2023-4-15 23:25
到时候问问他吧
对了,qq通过一下
您的chATgpt是那个网页的?
ai.com sfqxx 发表于 2023-4-15 23:25
到时候问问他吧
对了,qq通过一下
您的chATgpt是那个网页的?
你确定你有加我?我都没有收到请求
页:
[1]
2