Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
contest_exercises_template
提交
6869818b
C
contest_exercises_template
项目概览
CSDN 技术社区
/
contest_exercises_template
通知
79
Star
2
Fork
18
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
4
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
contest_exercises_template
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
6869818b
编写于
3月 01, 2023
作者:
张
张志晨
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add exercises
上级
8558ccd0
变更
23
显示空白变更内容
内联
并排
Showing
23 changed file
with
128 addition
and
2 deletion
+128
-2
.gitignore
.gitignore
+1
-2
exercises/zhangzc/中等/狄杰斯特拉/exercises.md
exercises/zhangzc/中等/狄杰斯特拉/exercises.md
+40
-0
exercises/zhangzc/中等/狄杰斯特拉/soulution.py
exercises/zhangzc/中等/狄杰斯特拉/soulution.py
+35
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.in
+7
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.in
+3
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.in
+5
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.in
+4
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.in
+4
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.in
+2
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.in
+2
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.in
+5
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.in
+6
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.out
+1
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.in
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.in
+4
-0
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.out
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.out
+1
-0
未找到文件。
.gitignore
浏览文件 @
6869818b
...
...
@@ -7,4 +7,3 @@ debug/
*.o
*.obj
*.a
\ No newline at end of file
*.out
\ No newline at end of file
exercises/zhangzc/中等/狄杰斯特拉/exercises.md
0 → 100644
浏览文件 @
6869818b
# 狄杰斯特拉
给定一张有向加权图,图中每条边的权重均为正整数。现在你需要从图中的一个起点出发,找到到达一个特定节点的最短路径。请编写一个程序,读入有向加权图和起点、终点,输出从起点到终点的最短距离。
## 输入描述
第一行包含三个整数n,m,s,分别表示节点数、边数和起点编号。节点编号从1到n。
接下来m行,每行包含三个整数u,v,w,表示u到v有一条有向边,边权为w。
1≤n≤1e5,1≤m≤2e5,1≤s≤n,1≤u,v≤n,1≤w≤1e9
## 输出描述
共一行,包含一个整数,表示从起点到终点的最短距离,如果不存在从起点到终点的路径,则输出INF。
## 输入样例
6 9 1
1 2 2
1 3 1
2 3 2
2 4 3
3 4 1
3 5 3
4 6 4
5 4 2
5 6 1
## 输出样例
8
## 提示
对于40%的数据,1≤n≤1e3,1≤m≤1e4,1≤w≤100。
对于100%的数据,有解保证存在且最大点数不超过1e5,边数不超过2e5。
\ No newline at end of file
exercises/zhangzc/中等/狄杰斯特拉/soulution.py
0 → 100644
浏览文件 @
6869818b
import
heapq
def
dijkstra
(
graph
,
start
,
end
):
# 距离数组,初始化为无穷大
dist
=
{
node
:
float
(
'inf'
)
for
node
in
graph
}
dist
[
start
]
=
0
# 优先队列,存储节点和到起点的距离
pq
=
[(
0
,
start
)]
while
pq
:
# 取出距离起点最近的节点
distance
,
node
=
heapq
.
heappop
(
pq
)
# 如果该节点已经被处理过,则跳过
if
distance
>
dist
[
node
]:
continue
# 更新该节点的所有邻居节点的距离值
for
neighbor
,
weight
in
graph
[
node
].
items
():
new_dist
=
dist
[
node
]
+
weight
if
new_dist
<
dist
[
neighbor
]:
dist
[
neighbor
]
=
new_dist
heapq
.
heappush
(
pq
,
(
new_dist
,
neighbor
))
# 返回从起点到终点的最短距离
return
dist
[
end
]
if
dist
[
end
]
<
float
(
'inf'
)
else
"INF"
# 读入有向加权图和起点、终点
n
,
m
,
s
=
map
(
int
,
input
().
split
())
graph
=
{
i
:
{}
for
i
in
range
(
1
,
n
+
1
)}
for
_
in
range
(
m
):
u
,
v
,
w
=
map
(
int
,
input
().
split
())
graph
[
u
][
v
]
=
w
# 计算从起点到终点的最短距离
print
(
dijkstra
(
graph
,
s
,
n
))
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.in
0 → 100644
浏览文件 @
6869818b
5 6 1
1 2 1
1 3 4
2 3 2
2 4 5
3 4 1
4 5 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/1.out
0 → 100644
浏览文件 @
6869818b
5
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.in
0 → 100644
浏览文件 @
6869818b
3 2 1
1 2 1
1 3 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/10.out
0 → 100644
浏览文件 @
6869818b
1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.in
0 → 100644
浏览文件 @
6869818b
4 4 1
1 2 1
1 3 2
2 4 2
3 4 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/2.out
0 → 100644
浏览文件 @
6869818b
3
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.in
0 → 100644
浏览文件 @
6869818b
3 3 1
1 2 1
1 3 2
2 3 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/3.out
0 → 100644
浏览文件 @
6869818b
2
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.in
0 → 100644
浏览文件 @
6869818b
3 3 1
1 2 1
2 3 2
3 1 3
exercises/zhangzc/中等/狄杰斯特拉/test_cases/4.out
0 → 100644
浏览文件 @
6869818b
INF
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.in
0 → 100644
浏览文件 @
6869818b
2 1 1
1 2 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/5.out
0 → 100644
浏览文件 @
6869818b
1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.in
0 → 100644
浏览文件 @
6869818b
2 1 2
1 2 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/6.out
0 → 100644
浏览文件 @
6869818b
INF
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.in
0 → 100644
浏览文件 @
6869818b
4 4 1
1 2 1
1 3 2
2 4 2
3 4 1
exercises/zhangzc/中等/狄杰斯特拉/test_cases/7.out
0 → 100644
浏览文件 @
6869818b
3
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.in
0 → 100644
浏览文件 @
6869818b
5 5 1
1 2 2
2 3 3
3 4 4
4 5 5
1 5 6
exercises/zhangzc/中等/狄杰斯特拉/test_cases/8.out
0 → 100644
浏览文件 @
6869818b
6
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.in
0 → 100644
浏览文件 @
6869818b
3 3 1
1 2 1
1 3 3
2 3 2
exercises/zhangzc/中等/狄杰斯特拉/test_cases/9.out
0 → 100644
浏览文件 @
6869818b
2
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录