1046.Shortest Distance (20)
来源:互联网 发布:编程图标 编辑:程序博客网 时间:2024/06/05 15:13
1046.Shortest Distance (20)
pat-al-1046
2017-01-27
- 作为一道20分的题,一开始想的有点复杂了,在发现直接暴力搜索是会超时之后,开了一个二维数组去从左到右从上到下求得每个节点之间正向和反向的距离,然后得到了段错误
- 在网上搜了一下:参考了这个PAT 解题报告 1046. Shortest Distance (20)的思想,自己写了一下(实现不一样),然后就AC了
- 有点难理解的话还是在草稿纸上手工做一遍
/** * pat-al-1046 * 2017-01-27 * C version * Author: fengLian_s */#include<stdio.h>#include<string.h>int main(){ freopen("in.txt", "r", stdin); int n; scanf("%d", &n); int dist[n+1];//dist[i]是节点i到1的距离 dist[1] = 0;//1到自己的距离是0 for(int i = 1;i < n;i++) { int tmp; scanf("%d", &tmp); dist[i+1] = dist[i] + tmp; } int sum; scanf("%d", &sum);//读入最后一个节点到1的距离 sum += dist[n];//得到总和 int m; scanf("%d", &m); for(int i = 0;i < m;i++) { int tmp1, tmp2; scanf("%d %d", &tmp1, &tmp2); if(tmp1 > tmp2)//让tmp1始终保持为较小的那一个数 { int tmp = tmp1; tmp1 = tmp2; tmp2 = tmp; } int distance1 = dist[tmp2] - dist[tmp1]; int distance2 = sum - distance1; if(distance1 < distance2) printf("%d\n", distance1); else printf("%d\n", distance2); }}
-FIN-
0 0
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- 1046. Shortest Distance (20)
- JDBC调用存储过程
- spark入门之一 spark组件
- 《游戏编程模式》(8)
- PYTHON笔记-字符串
- Ubuntu 16.04 安装 Nvidia 显卡驱动
- 1046.Shortest Distance (20)
- Git远程分支
- Android图片加载库对比:Universal-Image-Loader vs Glide vs Fresco vs Picasso几大框架的选择
- 设计模式笔记之----建造者模式
- Session保持持久化对象
- 《硅谷之谜》读书笔记:追求卓越,改变自己
- 3.1入门模拟B1012. 数字分类 (20)
- LDD之块设备驱动程序
- 使用Daemon tools加载magic engine镜像