AcWing 1123. 铲雪车
有向图存在欧拉路径情况②:其中一个点入度-出度=1,还有一个点出度-入度=1,其余点入度=出度
因为路径是双向的,所以相当于每个点的入度都等于出度,所以图中一定存在欧拉回路,就是输一定能不重复的走完每条路,所以只用计算总里程之后算时间即可
#include<bits/stdc++.h>
using namespace std;
#define db double
const int N = 4010;
db sum; //记录总距离
db xx[2], yy[2];
int main()
{
db x, y;
cin>>x>>y;
while(cin>>xx[0]>>yy[0]>>xx[1]>>yy[1]){
db xd = xx[0] - xx[1];
db yd = yy[0] - yy[1];
db d = sqrt(xd * xd + yd * yd) * 2; //路是双向的
sum += d;
}
int mint = round(sum / 1000 * 3);
int hours = mint / 60;
mint %= 60;
printf("%d:%02d", hours, mint);
return 0;
}