BZOJ2328 [HNOI2011]赛车游戏

前言

这道题目我真的佛了,卡精度+卡时间这就是下一个聊天鬼才.

Solution

首先可以二分出最大速度,然后考虑下坡的话可能有更好的解,然后这样子算一下就好了.

代码实现

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<iostream>
#define ll long long
#define re register
using namespace std;
inline int gi(){int f=1,sum=0;char ch=getchar();while(ch>'9' || ch<'0'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0' && ch<='9'){sum=(sum*10)+ch-'0';ch=getchar();}return f*sum;
}
const int N=10010;
const double eps=1e-15;
struct node
{double x,y,k,len;
}p[N];
int n;
double a,b,mx,f;
bool check(double mid)
{double need=0.0;for(int i=1;i<=n;i++){need+=max(a*mid+b*p[i].k,0.0)*p[i].len;if(need+eps>=f)return false;}return true;
}
double calc(double V)
{double res=0.0;for(int i=1;i<=n;i++){double tmp=a*V+b*p[i].k;if(tmp<=eps){double v=(-b*p[i].k)/a;v=min(v,mx);res+=p[i].len/v;}else{if(V<=eps)return 0;res+=p[i].len/V;}}return res;
}
void solve()
{double l=0,r=mx;int times=0;while(times<=500){double mid=(l+r)/2.0;if(check(mid))l=mid;else r=mid;times++;}double Time=calc(l);if(Time<=eps)puts("IMPOSSIBLE");else printf("%.5lf\n",Time);
}
int main(){int T=gi();while(T--){scanf("%lf%lf%lf%lf%d",&a,&b,&mx,&f,&n);for(int i=1;i<=n;i++){scanf("%lf%lf",&p[i].x,&p[i].y);p[i].x/=1000.0;p[i].y/=1000.0;p[i].k=p[i].y/p[i].x;p[i].len=sqrt(p[i].x*p[i].x+p[i].y*p[i].y);}solve();}return 0;
}

转载于:https://www.cnblogs.com/mle-world/p/10349367.html

【BZOJ2328】 [HNOI2011]赛车游戏相关推荐

  1. Tile Racer — 3D 赛车游戏

    Toy Posted in Tile Racer 是一款可免用度于 Linux 及 Windows 平台的 3D 赛车游戏.它不只具有十分逼真的效果,并且包罗用来创设新 Maps 的赛道编辑器.玩家可 ...

  2. Unity Android 2021:用C#打造3D ZigZag赛车游戏

    Unity Android 2021 : Build 3D ZigZag Racing Game with C# MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch ...

  3. python编写赛车游戏单机版_使用Keras和DDPG玩赛车游戏(自动驾驶)

    为什么选择TORCS游戏 <The Open Racing Car Simulator>(TORCS)是一款开源3D赛车模拟游戏 看着AI学会开车是一件很酷的事 可视化并考察神经网络的学习 ...

  4. 周末免费玩VR!Rift玩家的福利:BlazeRush赛车游戏

    (52VR开发网2017年5月26日讯) ​如果您在Hot Wheels和其他玩具车上设置了VR赛车游戏,那么孩子们在卧室里的小轨道上的嗡嗡声就一定是Targem游戏中的BlazeRush发出的. 我 ...

  5. SuperTuxKart 1.0 发布,开源赛车游戏

    SuperTuxKart 1.0 已发布.SuperTuxKart 是 TuxKart 赛车游戏的增强版本.与 TuxKart 相比,它增添了更多的新角色和比赛路线,一个全新的界面,以及一些细小的图形 ...

  6. 调整和改编赛车游戏——游戏屏幕

    游戏屏幕 赛车游戏中有很多不同的游戏屏幕,这些都是由RacingGame类中的gameScreens堆栈管理的.本节介绍游戏中使用的大部分屏幕和对应的功能.大多数游戏屏幕相当简单,但其他的有点复杂并实 ...

  7. linux下赛车游戏,SuperTuxKart 1.0 发布,开源Linux赛车游戏

    SuperTuxKart是一款受Mario Kart(马里奥赛车)启发并以Linux/Tux为主题的开源赛车游戏,经过12年多的开发,已经达到1.0版本.并且确定这个版本确实是一个重要的里程碑. Su ...

  8. NFT赛车游戏F1® Delta Time启动第二轮2019赛车NFT质押活动

    NFT赛车游戏F1® Delta Time启动第二轮2019赛车NFT质押活动,活动截至日期为2021年3月23日,将共奖励200万枚REVV.奖励数量将取决于玩家质押的赛车NFT数量占比以及稀有程度 ...

  9. 狂野飙车8:极速凌云 for Mac v1.0.2 Asphalt 8 好玩的赛车游戏

    今年的 Mac<Asphalt 8>将有全新8幅地图,新场景中将含有逼真的雪.灰尘和雨水等天气变化系统,官方宣称画面效果超乎想象.游戏包含异步和同步多人模式,在传统的<Asphalt ...

最新文章

  1. js实现promise.all promise.race promise.resolve
  2. @Mapper和@Repository的区别
  3. Java TCP 编程简介
  4. 'ascii' codec can't encode characters in position 20-24:ordinal not in range(128)报错根本解决办法
  5. xfce4开始菜单中的小老鼠图标不见了
  6. 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
  7. 关于时间复杂度(持续更新.....)
  8. WINFORM如何只弹出一个子窗体
  9. ai皮肤检测分数_德国猫咪皮肤检测仪,为什么这么火?| 云美来
  10. CSS-四种引入方式
  11. (十) 一起学 Unix 环境高级编程 (APUE) 之 线程控制
  12. undo歌词中文音译_《U-n-d-e-r–STANDING!》中文歌词及音译
  13. 不用恢复出厂设置啦,联想电脑YogaDuet如何升级win11?在BIOS开启加载系统初始值 打开Intel Platform Trust开启TMP2.0更新win11
  14. 世界最著名八大发动机结构!
  15. 超级减肥王 V4.1.0 iPad版
  16. linux的文件和文件夹操作
  17. FPGA接口-PMOD,FMC与SYZYGY
  18. Econometrics Homework (Lab Course: Chapters 2, 3, 4)
  19. java中date如何获取月份_Java:从Date获取月份整数
  20. Android USB识别开发

热门文章

  1. linux服务器中开启新的ip端口
  2. Linux下脚本对拍
  3. MATLAB 归一化 函数用法以及实例
  4. 数据库到底如何理解呢
  5. 差分相干解调 matlab,2DPSK差分相干解调器Simulink仿真
  6. LTDC-DMA2D液晶显示 代码详解(二)
  7. 电视派登陆时显示服务器维护中怎么办,创维酷开电视系统错误提示代码报错详解...
  8. c#和unity中用的c#的差距
  9. Hive/Spark SQL使用案例
  10. 加快网站访问速度——Yslow极限优化