codeforces 617C
来源:互联网 发布:oppo商城软件下载 编辑:程序博客网 时间:2024/05/21 05:41
两个喷泉,n 个花朵
要使得所有花朵被覆盖,并使得 R1*R1 +R2*R2
枚举 每一个点到p1的距离,对于不在R1 之内的点,计算其到R2的距离,并记录最大值, 特殊考虑p1 || p2 覆盖所有点的情况
#include<bits/stdc++.h>using namespace std;struct node{ __int64 x,y;} a[2010];node p1,p2;__int64 dis(node c,node d){ return (c.x-d.x)*(c.x-d.x)+(c.y - d.y)*(c.y- d.y);}int main(){ int n; scanf("%d",&n); scanf("%I64d%I64d%I64d%I64d",&p1.x,&p1.y,&p2.x,&p2.y); for(int i = 1; i<=n; i++) { scanf("%I64d%I64d",&a[i].x,&a[i].y); } if(n==1) { printf("%I64d\n",min(dis(p1,a[1]),dis(p2,a[1]))); return 0; } __int64 ans = 10000000000000000; for(int i = 1; i<=n; i++) { __int64 q1 = dis(p1,a[i]); __int64 ans2 = 0; for(int j = 1; j<=n; j++) { if(j==i) continue; __int64 q2= dis(a[j],p1); if(q2>q1) { if(ans2<dis(p2,a[j])) { ans2 = dis(p2,a[j]); } } } if(ans>ans2+q1) { ans =ans2+q1; } } __int64 c = 0; __int64 d= 0; for(int i= 1; i<=n; i++) { c = max(c,dis(a[i],p1)); d = max(d,dis(a[i],p2)); } __int64 f = min(c,d); printf("%I64d\n",min(f,ans)); return 0;}
0 0
- codeforces 617C
- Codeforces 617 C. Watering Flowers
- Codeforces 617C:Watering Flowers
- Codeforces 617C(Watering Flowers)
- CodeForces 617C Watering Flowers
- codeforces 617C Watering Flowers(暴力)
- CodeForces 617 C. Watering Flowers(水~)
- Codeforces-340-C(c++)
- Codeforces-507-C(c++)
- CodeForces 731C C
- CodeForces-612C C
- CODEFORCES 265C CODEFORCES, 265C
- codeforces #78 div2 C
- Codeforces 117C Cycle
- CodeForces 209C
- CodeForces 156C Cipher
- codeforces 148 div2 C
- codeforces 242C
- 最大公约数和最小公倍数
- Ubuntu文件颜色的意义 ls命令 putty配色
- Java 线程
- 高效能的5个项目管理工具
- 蓝桥杯历届-巧排扑克牌
- codeforces 617C
- 数字签名与数字证书
- MFC 消息映射实现原理
- Vijos 1028-魔族密码【暴力】
- Android 图片加载优化(持续更新中)
- 将DHT11移植到Linux系统上续
- iOS中使用NSURLSession上传字符串
- js实现简单的时钟
- ZOJ 3279 Ants(线段树单点更新和查询)