CF 782B 和 HDU 4717 经典移点问题 【 二分 和 三分 时间】
来源:互联网 发布:bi数据产品经理 编辑:程序博客网 时间:2024/06/05 10:11
CF 782B 传送门
/** @Cain*/const int maxn = 1e5+5;const db eps = 1e-7;int a[maxn],b[maxn];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } db l = 0, r = inf , mid; while(r - l > eps){ mid = (r+l)/2.0; db maxx = -inf, minn = inf; for(int i=1;i<=n;i++){ db xl = a[i]*1.0 - b[i]*mid; db xr = a[i]*1.0 + b[i]*mid; maxx = max(maxx,xl); //千万不要找错了,是找最小的进 //行比较, 而不是最大的, 既是往左和右移动距离小的那两个. //如果直接找最大的两个点则有可能有交叉部分. minn = min(minn,xr); } if(fabs(maxx - minn) < eps) break; else if(maxx < minn) r = mid; else l = mid; } printf("%.12lf\n",mid);}
HDU 4717 传送门
//思路:在平面中任意两个点的距离一定是先减小, 后增大的, 不信可以画出来看一看. 所以满足单峰函数, 所以就可以用三分来做.
/** @Cain*/const int maxn = 3e2+5;const db eps = 1e-6;int x[maxn],y[maxn],vx[maxn],vy[maxn];int n;int cas = 1;db cal(db t){ db res = 0; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ db x1 = x[i]*1.0+vx[i]*t; db y1 = y[i]*1.0+vy[i]*t; db x2 = x[j]*1.0+vx[j]*t; db y2 = y[j]*1.0+vy[j]*t; db maxx = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); res = max(maxx,res); } } return res;}void solve(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d%d%d",&x[i],&y[i],&vx[i],&vy[i]); } db l = 0, r = inf,len; db lm,rm; while(r - l > eps){ len = (r-l)/3.0; lm = l + len; rm = r - len; db dislm = cal(lm); db disrm = cal(rm); if(dislm < disrm) r = rm; else l = lm; } printf("Case #%d: %.2f %.2f\n",cas++,l,cal(l));}
阅读全文
0 0
- CF 782B 和 HDU 4717 经典移点问题 【 二分 和 三分 时间】
- CSU-ACM2017寒假集训1B-简单二分和三分 HDU - 2141
- 二分和三分模板
- 二分搜索和三分搜索
- CF#321-B - Kefa and Company 二分+前缀和
- Hdu 2899 - Strange fuction 二分/三分求函数极值点
- hdu 2298 二分+三分
- 二分和三分总结与误区分析
- [HDU 4445 Crazy Tank] 三分最远角度+二分命中区间+前缀和求最大值
- CF-608B 前缀和
- CF 8D Two Friends (三分+二分)
- CF 8D Two Friends 【二分+三分】
- cf 320# Weakness and Poorness(三分+最大连续和)
- hdu 2199 2899 (二分,三分)
- HDU 2899 (二分 或者 三分)
- 经典问题a+=b和a=a+b
- 假币算法求解(三分算法和二分算法)
- CF 287B(Pipeline-二分)
- 3-2 UBUNTU主机配置
- linux学习之旅(六)&玩转权限
- 学习笔记TF026:多层感知机
- Android设置视频背景
- Java获取字符串(16bit,32bit)和文件MD5工具
- CF 782B 和 HDU 4717 经典移点问题 【 二分 和 三分 时间】
- Android Studio 小技巧/快捷键 合集
- Qt中显示opencv生成图片
- Python readlines and readline
- hdu5222 Exploration【并查集+拓扑排序】
- 摆积木
- C
- 系统服务
- 程序猿必须掌握的三大排序之冒泡排序