程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |?

开发过程中遇到为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |的问题如何解决?下面主要结合日常开发的经验,给出你关于为什么我在 O(n) 中得到 TLE?是因为 Python 吗?请帮助我被卡住了。 |图表 | BFS | DFS |蟒蛇| C++ |的解决方法建议,希望对你解决为什么我在 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,请注明来意。