hdu 6385

题意是在一个矩形中任给N个点,求这N个点到矩形某边的最短距离和。

一开始想到直接贪心,求出每个点到矩形一边的最短距离,但题中说到线段间不能交叉,这里好像是比较麻烦,但题目中同时说了点与点之间的横纵坐标均不相等,那么就不会发生线段交叉,直接求即可。

 1 #include<bits/stdc++.h>
 2 #define in(a) scanf("%d",&a)
 3 using namespace std;
 4 int main()
 5 {
 6     int n,mx,my,x,y,N,minn;
 7     __int64 ans;
 8     in(n);
 9     while(n--)
10     {
11         ans = 0;
12         in(mx);in(my);in(N);
13         for(int i = 0; i < N; i++)
14         {
15             in(x);in(y);
16             minn = min(x,y);
17             minn = min(minn,mx-x);
18             minn = min(minn,my-y);
19             ans += minn;
20         }
21         printf("%I64d
",ans);
22     }
23     return 0;
24 }
View Code
日后若能有更好的想法,再来完善。 希望看到的大神不吝赐教 orz
原文地址:https://www.cnblogs.com/Taskr212/p/9463335.html