hdu 6385
题意是在一个矩形中任给N个点,求这N个点到矩形某边的最短距离和。
一开始想到直接贪心,求出每个点到矩形一边的最短距离,但题中说到线段间不能交叉,这里好像是比较麻烦,但题目中同时说了点与点之间的横纵坐标均不相等,那么就不会发生线段交叉,直接求即可。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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\n",ans); 22 } 23 return 0; 24 }
日后若能有更好的想法,再来完善。
希望看到的大神不吝赐教 orz