Yk2eR0's Blog.

ctf.show红包题2

字数统计: 422阅读时长: 2 min
2020/02/13 Share

题目地址:http://game.ctf.show/
实际上就是最短路径问题
先爬下来路径点,然后python实现最短路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import networkx as nx
from networkx.drawing.tests.test_pylab import plt


def Dijkstra(G, start, end):
RG = G.reverse();
dist = {};
previous = {}
for v in RG.nodes():
dist[v] = float('inf')
previous[v] = 'none'
dist[end] = 0
u = end
while u != start:
u = min(dist, key=dist.get)
distu = dist[u]
del dist[u]
for u, v in RG.edges(u):
if v in dist:
alt = distu + RG[u][v]['weight']
if alt < dist[v]:
dist[v] = alt
previous[v] = u
path = (start,)
last = start
while last != end:
nxt = previous[last]
path += (nxt,)
last = nxt
return path

G = nx.Graph()
a=[('你是','E11'),('你是','因为'),('你是','36D}'),('羽','E11'),('羽','E10'),('羽','E13'),('羽','E12'),('羽','E14'),('羽','因为'),('羽','E7'),('羽','E6'),('E10','Cyz'),('E10','奝'),('E10','anweilx'),('E10','群主'),('admin','E7'),('admin','E12'),('admin','因为'),('admin','E8'),('E12','奝'),('E12','群主'),('E12','Cyz'),('E12','奝'),('E14','Cyz'),('E14','36D}'),('E14','群主'),('printf','E5'),('printf', 'E6'), ('printf', 'E8'), ('printf', '爱你'), ('frank', '因为'), ('frank', 'E8'), ('不是', '因为'),('不是', 'E8'),('不是', 'E5'), ('不是', 'E4'), ('不是', 'E6'), ('不是', 'E1'), ('不是', '爱你'),('不是','E2'),('joker','E5'),('joker','E7'),('joker','因为'),('joker','E8'),('奝','E11'),('奝','E7'),('奝','E8'),('biu','E11'),('biu','因为'),('烟雨','E5'),('烟雨','E7'),('烟雨','E6'),('烟雨','E8'),('因为','就是'),('因为', 'K'), ('因为', '群主'), ('因为', 'Cyz'), ('因为', '奝'), ('E8', '就是'), ('E8', 'K'), ('E8', '群主'), ('E8', 'Cyz'),('E8', 'imagin'), ('E8', 'P3rh4ps'), ('E8', 'yaLddel'), ('E5', '就是'), ('E5', 'imagin'),('E5','P3rh4ps'),('E5','w1nd'),('E4','w1nd'),('E4','就是'),('E4','imagin'),('E7','就是'),('E7','Cyz'),('E7','imagin'),('E7','P3rh4ps'),('E7','w1nd'),('E6','就是'),('E6','K'),('E6','imagin'),('E6','P3rh4ps'),('E1','P3rh4ps'),('E1','imagin'),('爱你','就是'),('爱你','imagin'),('爱你','P3rh4ps'),('爱你','w1nd'),('爱你','flag{'),('E2','P3rh4ps'),('E2','就是'),('群主','E13'),('E13','Cyz')]
b=[]
c=[]
for i in a:
b.append(i[0])
c.append(i[1])
for i in range(len(b)):
G.add_edge(b[i],c[i],weight=1)
print('图中所有的边', G.edges())
print("________________________________________")
print(list(nx.all_shortest_paths(G,source='flag{', target='36D}')))

原文作者:Yk2eR0

原文链接:https://www.yk2er0.fun/2020/02/13/hongbao3/

发表日期:二月 13日 2020, 11:04:21 上午

更新日期:February 13th 2020, 12:06:22 pm

版权声明:非商业用允许转载

CATALOG