HDU 1173 采矿 计算几何
2015-12-11 11:21
120 查看
思路:(x1,y1)(x_1,y_1)距离(x2,y2)(x_2,y_2)是(x2−x1)+(y2−y1)(x_2-x_1)+(y_2-y_1);所以答案(x,y)(x,y)到所有点的距离为∑n1(xi−x)+∑n1(yi−y)\sum_{1}^{n}(x_i-x)+\sum_{1}^{n}(y_i-y),于是就可以单独求出,x,y的值了。
http://acm.hdu.edu.cn/showproblem.php?pid=1173/********************************************* Problem : HDU 1173 Author : NMfloat InkTime (c) NM . All Rights Reserved . ********************************************/ #include <map> #include <set> #include <queue> #include <cmath> #include <ctime> #include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> #define rep(i,a,b) for(int i = a ; i <= b ; i ++) #define rrep(i,a,b) for(int i = b ; i >= a ; i --) #define repE(p,u) for(Edge * p = G[u].first ; p ; p = p -> next) #define cls(a,x) memset(a,x,sizeof(a)) #define eps 1e-8 using namespace std; const int MOD = 1e9+7; const int INF = 0x3f3f3f3f; const int MAXN = 1e6+5; const int MAXE = 2e5+5; typedef long long LL; typedef unsigned long long ULL; int T,n,m,k; double X[MAXN],Y[MAXN]; void input() { rep(i,1,n) scanf("%lf %lf",&X[i],&Y[i]); } void solve() { sort(X+1,X+n+1); sort(Y+1,Y+n+1); double ansX , ansY; if(n & 1) {ansX = X[(n+1)/2] ; ansY = Y[(n+1)/2] ;} else {ansX = (X[n/2] + X[n/2+1]) / 2; ansY = (Y[n/2] + Y[n/2+1]) / 2 ;} printf("%.2lf %.2lf\n",ansX,ansY); } int main(void) { //freopen("a.in","r",stdin); //scanf("%d",&T);while(T--) { //while(~scanf("%d %d",&n,&m)) { while(scanf("%d",&n),n) { input(); solve(); } return 0; }
相关文章推荐
- Lex与Yacc
- HTML DOCTYPE 的重要性
- 78,id 动态类型
- 第五章解答
- 利用html5看雪花飘落的效果
- win7下的IP-主机名映射
- 编程, 细心永远都不嫌多(记录java连接数据库的一个错误)
- 初学 linux 笔记
- shell常用脚本
- 【Java数据结构】递归
- jsp中为什么后台传递过来的数据没有空格 而jsp页面上用EL表达式接收就会显示有空格
- HashMap的工作原理
- AngualrJS之服务器端通信
- Android应用开发之裁剪图片的自定义控件
- JavaScript基础篇(6)之函数表达式闭包
- Android应用程序资源的查找过程分析
- 10015---MySQL--innodb_flush_log_at_trx_commit参数
- [leetcode]Symmetric Tree
- jsp页面格式化
- PyQt5 学习笔记