ZCMU—1871

来源:互联网 发布:php时间戳转换成时间 编辑:程序博客网 时间:2024/05/18 05:11

Problem C: Problem C: Snow Clearing

Time Limit: 1 Sec  Memory Limit: 128 MB
[Submit][Status][Web Board]

Description

Problem C: Snow Clearing

As the days become shorter and the nights become longer we turn our thoughts to snow clearing. Due to budget cuts, the Big Noisy City has exactly one snow plow. The plow can clear exactly one lane of a road in a single pass. Whenever there is snow on the ground, the plow departs from its hangar and tours the city, plowing as it goes. What is the minimum time that the plow needs to clear every lane of every road?

The first line of input contains two integers: the x,y coordinates of the hangar (in metres). Up to 100 lines follow. Each gives the coordinates (in metres) of the beginning and end of a street. All roads are perfectly straight, with one lane in each direction. The plow can turn any direction (including a U-turn) at any intersection, and can turn around at the end of any street. The plow travels at 20 km/h if it is plowing, and 50 km/h if the lane it is driving on has already been plowed. It is possible to reach all streets from the hangar.

Your output should be the time, in hours and minutes, required to clear the streets and return to the hangar. Round to the nearest minute.

Input

Output

Sample Input

0 0
0 0 10000 10000
5000 -10000 5000 10000
5000 10000 10000 10000

Sample Output

3:55

【分析】

不知道是题目有问题还是啥....我的做法是默认所有路都是联通的...然后对于每条马路,显然是有两个车道的,所以需要长度*2,再考虑全部扫一遍雪,那么就可以发现,就是所有道路长度*2/(20km/h)....大概原题意应该是最小费用流吧..
【代码】
#include <stdio.h>#include <math.h> main(){    int x,y;    while (~scanf("%d%d",&x,&y))    {        int a,b;        double ans=0;        while (~scanf("%d%d%d%d",&a,&b,&x,&y))            ans+=sqrt((x-a)*(x-a)+(y-b)*(y-b));        ans/=1000;        ans*=6;        ans+=0.5;        int t=(int)ans;        printf("%d:%02d\n",t/60,t%60);    }    return 0; }


0 0
原创粉丝点击