【BZOJ2328】 [HNOI2011]赛车游戏
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]赛车游戏相关推荐
- Tile Racer — 3D 赛车游戏
Toy Posted in Tile Racer 是一款可免用度于 Linux 及 Windows 平台的 3D 赛车游戏.它不只具有十分逼真的效果,并且包罗用来创设新 Maps 的赛道编辑器.玩家可 ...
- 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 ...
- python编写赛车游戏单机版_使用Keras和DDPG玩赛车游戏(自动驾驶)
为什么选择TORCS游戏 <The Open Racing Car Simulator>(TORCS)是一款开源3D赛车模拟游戏 看着AI学会开车是一件很酷的事 可视化并考察神经网络的学习 ...
- 周末免费玩VR!Rift玩家的福利:BlazeRush赛车游戏
(52VR开发网2017年5月26日讯) 如果您在Hot Wheels和其他玩具车上设置了VR赛车游戏,那么孩子们在卧室里的小轨道上的嗡嗡声就一定是Targem游戏中的BlazeRush发出的. 我 ...
- SuperTuxKart 1.0 发布,开源赛车游戏
SuperTuxKart 1.0 已发布.SuperTuxKart 是 TuxKart 赛车游戏的增强版本.与 TuxKart 相比,它增添了更多的新角色和比赛路线,一个全新的界面,以及一些细小的图形 ...
- 调整和改编赛车游戏——游戏屏幕
游戏屏幕 赛车游戏中有很多不同的游戏屏幕,这些都是由RacingGame类中的gameScreens堆栈管理的.本节介绍游戏中使用的大部分屏幕和对应的功能.大多数游戏屏幕相当简单,但其他的有点复杂并实 ...
- linux下赛车游戏,SuperTuxKart 1.0 发布,开源Linux赛车游戏
SuperTuxKart是一款受Mario Kart(马里奥赛车)启发并以Linux/Tux为主题的开源赛车游戏,经过12年多的开发,已经达到1.0版本.并且确定这个版本确实是一个重要的里程碑. Su ...
- NFT赛车游戏F1® Delta Time启动第二轮2019赛车NFT质押活动
NFT赛车游戏F1® Delta Time启动第二轮2019赛车NFT质押活动,活动截至日期为2021年3月23日,将共奖励200万枚REVV.奖励数量将取决于玩家质押的赛车NFT数量占比以及稀有程度 ...
- 狂野飙车8:极速凌云 for Mac v1.0.2 Asphalt 8 好玩的赛车游戏
今年的 Mac<Asphalt 8>将有全新8幅地图,新场景中将含有逼真的雪.灰尘和雨水等天气变化系统,官方宣称画面效果超乎想象.游戏包含异步和同步多人模式,在传统的<Asphalt ...
最新文章
- js实现promise.all promise.race promise.resolve
- @Mapper和@Repository的区别
- Java TCP 编程简介
- 'ascii' codec can't encode characters in position 20-24:ordinal not in range(128)报错根本解决办法
- xfce4开始菜单中的小老鼠图标不见了
- 项目背景怎么描述_产品经理写简历,如何让「项目经验」更出众?
- 关于时间复杂度(持续更新.....)
- WINFORM如何只弹出一个子窗体
- ai皮肤检测分数_德国猫咪皮肤检测仪,为什么这么火?| 云美来
- CSS-四种引入方式
- (十) 一起学 Unix 环境高级编程 (APUE) 之 线程控制
- undo歌词中文音译_《U-n-d-e-r–STANDING!》中文歌词及音译
- 不用恢复出厂设置啦,联想电脑YogaDuet如何升级win11?在BIOS开启加载系统初始值 打开Intel Platform Trust开启TMP2.0更新win11
- 世界最著名八大发动机结构!
- 超级减肥王 V4.1.0 iPad版
- linux的文件和文件夹操作
- FPGA接口-PMOD,FMC与SYZYGY
- Econometrics Homework (Lab Course: Chapters 2, 3, 4)
- java中date如何获取月份_Java:从Date获取月份整数
- Android USB识别开发