zoj2433
2017-01-12 20:25
232 查看
题目大意:
在一个遥远的国家,有N个城市都坐落在公路旁边。公路是直线的,它从第一个城市开始,通过第二个,第三个,直到第N个。第i个城市在距离第一个Xi米处。但是公路是单向的,人们只能从小号码城市开车到大号码城市。
Mr. Pathwayson决定新建2条公路,使得每个城市可以相互走。每条新公路不能通过第三个城市。同时每个城市至多是一条公路的尽头。
写一个程序,满足所有的要求,同时要使得成本最低。
解题思路:
如果城市数量小于4个,肯定不可以。否则,知道距离最小的两个城市k+1和k+2。肯定要包含第一个城市和最后一个城市,然后k+2连到城市1,城市n连到k+1。距离等于最后一个城市的坐标加上两个城市的距离。代码如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int main() { int n,N,a[50005],b,c,sum,min,k,i; scanf("%d",&N); while(N--) { scanf("%d",&n); c=0; for(i=0;i<n-1;i++) { scanf("%d",&b); a[i]=b-c; c=b; } min=a[1]; k=1; for(i=2;i<n-2;i++) { if(min>a[i]) { min=a[i]; k=i; } } sum=min+c; if(n<4) printf("0\n"); else { printf("%d\n%d 1 %d %d\n",sum,k+2,n,k+1); } if(N) printf("\n"); } return 0; }
相关文章推荐
- zoj3549 快速幂
- ZOJ 1002
- ZOJ-3861 DFS+回溯
- ZOJ3279 —— 8G island
- zoj_1004-Anagrams by stack
- zoj_2278-Fight for Food
- ZOJ 1001 A+B Problem
- zoj 2710 Two Pipelines
- zoj 1001 a + b问题
- zoj 386 4000 1 Valid Pattern Lock
- ZOJ 3755 Mines 回溯+剪枝
- ZOJ3750 Dot Dot Dot 枚举状态+BFS
- poj 1514&zoj 1185 Metal Cutting(半平面交)
- ZOJ1101-Gamblers 终于AC。。。
- zoj 1148 The Game 一个晚上终于AC!
- zoj 3420 纯bfs
- PAT 01-复杂度2. Maximum Subsequence Sum (25)&&PAT 01-复杂度1. 最大子列和问题(20)
- 狗狗40题~ (Volume A)
- 狗狗40题~ (Volume B)
- 狗狗40题~ (Volume C)