
Tinkoff Challenge - Elimination Round C. Mice problem(模拟)
发布日期:2021-05-09 01:10:56
浏览次数:18
分类:原创文章
本文共 1379 字,大约阅读时间需要 4 分钟。
题意
给出一个矩形的左下角和右上角的坐标,给出n个点的初始坐标和运动速度和方向,询问是否存在一个时间使得所有点都在矩形内,有则输出最短时间,否则输出-1
分析
对于每个点如果运动过程中都不在矩形内,输出-1
每个点的横纵运动分开考虑,判断处理得到点到达矩形边界的时间段,取交集,具体见代码
trick
1.all the mice that are strictly inside the mousetrap,即在矩形边界点不算入矩形
2.卡精度
代码
#include <bits/stdc++.h>using namespace std;#define ll long long#define F(i,a,b) for(int i=a;i<=b;++i)#define R(i,a,b) for(int i=a;i<b;++i)#define mem(a,b) memset(a,b,sizeof(a))#pragma comment(linker, "/STACK:102400000,102400000")inline void read(int &x){x=0; char ch=getchar();while(ch<'0') ch=getchar();while(ch>='0'){x=x*10+ch-48; ch=getchar();}}int n;double x1,y1,x2,y2,rx,ry,vx,vy,minn,maxn;const double eps = 1e-13;bool flag;void work(double loc,double v,double l,double r){ if(fabs(v)<eps) { if((loc+eps)<=r&&(loc-eps)>=l) return ; else { flag=1;return ; } } if(v<0) { l=-l,r=-r,v=-v,loc=-loc; swap(l,r); } if(loc>r) { flag=1;return; } minn=min(minn,(r-loc)/v); if(loc<l) maxn=max(maxn,(l-loc)/v);}int main(){ scanf("%d",&n); scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2); minn=1e9,maxn=0; for(int i=1;i<=n;++i) { scanf("%lf%lf%lf%lf",&rx,&ry,&vx,&vy); if(flag) continue; work(rx,vx,x1,x2); work(ry,vy,y1,y2); } //printf("minn=%f maxn=%f\n",minn,maxn); if(flag) { puts("-1");return 0; } if(maxn+eps<=minn) printf("%f\n",maxn);else puts("-1");}
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年05月17日 20时09分23秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
MATLAB实现交叉小波变换
2025-04-12
MATLAB实现各种概率密度函数(概率密度/分布/逆概率分布函数)
2025-04-12
MATLAB实现各种熵:香农熵、条件熵、模糊熵、样本熵等
2025-04-12
MATLAB实现各种离散概率密度函数(概率密度/分布/逆概率分布函数)
2025-04-12
MATLAB实现基于遗传算法/引力搜索算法优化新安江水文模型
2025-04-12
MATLAB实现滑动平均法
2025-04-12
MATLAB怎么解方程解,怎么用MATLAB求解微分方程组并画出解函数图?
2025-04-12
MATLAB探测热带气旋的算法
2025-04-12
MATLAB生成一组和为定值的随机数——用于种群生成
2025-04-12
matlab用法总结
2025-04-12
Matlab画图及GUI总结
2025-04-12
matlab的宏观介绍-ChatGPT4o作答
2025-04-12
Matlab的集合运算[转]
2025-04-12
matlab矩阵除法a b,Matlab中的矩阵除法有问题???
2025-04-12
Matlab程序怎样打包
2025-04-12
matlab练习程序(RGB2HSV、HSV2RGB)
2025-04-12
matlab练习程序(三角形内切圆)
2025-04-12
MATLAB绘制ROC曲线
2025-04-12
MATLAB绘制图像时调整坐标轴及网格线至最顶层
2025-04-12
MATLAB绘制椭圆
2025-04-12