大佬教程收集整理的这篇文章主要介绍了为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以最近我一直在解决许多图形问题并使用 Python 解决问题, 但是每当我使用 Python 甚至 C++ 解决与图形相关的 Codechef 或 HackerEarth 问题时,但在每个问题的某些测试用例中,它都会给出 TLE,而且我很确定我不会超过 O(n)。请帮帮我。
所以像这样 CodeChef Question 1 这是基本的 bfs,dfs 问题,这是 My Solution 1,很多人告诉我这是因为 Python 是一种缓慢的语言,但对我来说没有意义因为与 C/C++ 相比,所有这些竞争性编程网站都认为 Python 代码的时间是 5 倍。 有趣的事实是,对于同一个 CodeChef Question 1 有很多 python 解决方案,我认为他们做了同样的事情但没有得到 TLE,例如这些 Some guy's Solution 1、Some guy's solution 2 和 {{3 }}。
如果您能告诉我这些人的解决方案和我的解决方案之间有什么区别,或者问题究竟出在我的代码中(我消耗额外时间的地方),那将是一个很大的帮助?
在这一切之后,我也尝试用 C++ 实现它,不幸的是没有发生任何奇迹,它也给了我 TLE。 Some guy's solution 3。
如果您不想访问这些链接:
我的 Python 解决方案 1:
from collections import defaultDict
from collections import deque
class Graph:
def __init__ (self):
self.graph = defaultDict(List)
self.ll=0
self.flag=0
self.visit={}
self.rp={}
def creategh(self,a,b):
try:
self.rp[(a,b)]+=1
except:
self.rp[(a,b)]=1
if(a!=b):
self.graph[a].append(b)
def bfs(self,n):
dq = deque([])
self.ll=0
dq.appendleft(n)
self.visit[n]=1
while(dq):
s = dq.pop()
self.ll+=1
for i in self.graph[s]:
try:
self.visit[i] +=1
except:
self.visit[i] = 1
dq.appendleft(i)
return self.ll
g = Graph()
n,m = map(int,input().split())
x=[]
a= List(map(int,input().split()))
x.append(a)
for i in range(len(a)-1):
if(a[i]==a[i+1]):
g.creategh((0,i),(0,i+1))
g.creategh((0,i+1),i))
for i in range(1,n):
a= List(map(int,input().split()))
x.append(a)
for j in range(m):
try:
if(x[i][min(j+1,m-1)]==x[i][j]):
g.creategh((i,j),(i,min(j+1,m-1)))
g.creategh((i,m-1)),j))
except:
do="nothing"
try:
if(x[max(0,i-1)][j]==x[i][j]):
g.creategh((max(i-1,0),j))
g.creategh((i,(max(i-1,j))
except:
do="nothing"
mmx=-999999999999999
mnxm=9999999999999999999999999999999
for i in range(n):
for j in range(m):
try:
g.visit[i]+=1
except:
lol=g.bfs((i,j))
if(lol>mmX):
mmx=lol
mnxm=x[i][j]
elif(lol==mmX):
if(mnxm>x[i][j]):
mnxm=x[i][j]
print(mnxm,mmX)
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |全部内容,希望文章能够帮你解决为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。