PAT 1150 求簡單迴路

2021-09-13 20:42:31 字數 2604 閱讀 6823

主要搞懂兩個概念

這次超時了,得了評分是21分,通過集合判斷是否是環和通過集合判斷是否周遊了全部節點顯然太耗時了,這是改善的空間

n,m

=map

(int

,input().

split

(" "

))graph

=matrix

=[([-1

]*n)

fori

inrange(n

)]for

index

inrange(m

):i,j

,dist

=map

(int

,input().

split

(" "

))graph[i

-1][j

-1]=

dist

graph[j

-1][i

-1]=

dist

path_num

=int

(input

())paths=

nodes

=set

(range(1

,n+1

))min_

=9999

ind=

0for

index

inrange

(path_num

):path

=list

(map

(int

,input().

split

(" "

)))d=0

circle

=false

******

=falsets=

false

ifpath[1

]==path[-

1]:circle

=true

ifcircle:if

len(

set(

path[1

:-1]))==(

path[0

]-1):

******

=true

else:if

len(

set(

path[1

:-1]))

==path[0

]:******

=true

fori

inrange

(path[0

]-1):

ifgraph

[path[i

+1]-

1][path[i

+2]-

1]==-

1orgraph

[path[i

+2]-

1][path[i

+1]-

1]==-

1:d=

"na"

circle

=false

break

else:if

graph

[path[i

+1]-

1][path[i

+2]-

1]!=-

1:d=

d+graph

[path[i

+1]-

1][path[i

+2]-

1]else:d

=d+graph

[path[i

+2]-

1][path[i

+1]-

1]ifset

(path[1

:-1])

==nodes:ts

=true

ifcircle

and******

andts

:print

("path "

+str

(index+1

)+": "

+str(d

)+" "+

"(ts ****** cycle)"

)elif

circle

and******

==false

andts

:print

("path "

+str

(index+1

)+": "

+str(d

)+" "+

"(ts cycle)"

)else

:print

("path "

+str

(index+1

)+": "

+str(d

)+" "+

"(not a ts cycle)")if

type(d

)isintand

circle

andts:if

d<

min_

andd

>0:

min_=d

ind=

index+1

print

("shortest dist("

+str

(ind)+

") = "

+str

(min_)+

"")

??正文結束??

poj1150 求排列Anm的末尾非0數字

題意 求npm,即n個元素的m中排列方式結果中末尾非0 的數字。思路 首先我們知道,2和5相乘末尾非0數字為1,相當於可以相消。我們先把這兩個因子抽離出來,考慮末尾為3,7,9的數字。設f n,x 為 n!因子中,抽離了2,5,後末尾數字為x的因子個數。分析可以知道f n,x f n 2,x g n...

PAT 7 24 約分最簡分式

基本程式設計集 約分最簡分式 分數可以表示為分子 分母的形式。編寫乙個程式,要求使用者輸入乙個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6 12可以被約分為1 2。當分子大於分母時,不需要表達為整數又分數的形式,即11 8還是11 8 而當分子分母相等時,仍然表達...

PAT乙級題目 約分最簡分式

7 24 約分最簡分式 15 分 分數可以表示為分子 分母的形式。編寫乙個程式,要求使用者輸入乙個分數,然後將其約分為最簡分式。最簡分式是指分子和分母不具有可以約分的成分了。如6 12可以被約分為1 2。當分子大於分母時,不需要表達為整數又分數的形式,即11 8還是11 8 而當分子分母相等時,仍然...