B - Blow up the Enemy
https://vjudge.net/contest/386568#problem/B
The game provides nn weapons, each has two properties: Damage and Delay. The ithith weapon has Damage AiAi and Delay DiDi. When a player shoots with this weapon, his enemy's HP is reduced by AiAi, then he must wait for DiDi ms before he can shoot again.
The game processes as follows:
1. Before the game starts, Zhang3 and Father choose a weapon respectively. Father always randomly chooses one of the nn weapons with equal probabilities. Each player can only use the chosen weapon during the game.
2. When the game starts, Zhang3 and Father have 100100 HP each. They make their first shot at the same time.
3. They keep shooting as quickly as possible. That means, a player shoots instantly whenever he can shoot, until the game ends.
4. When a player's HP is reduced to 0 or lower, he dies and the game ends. If the other player is still alive (i.e. has HP higher than 0), then the living player wins the game; otherwise (if the two players die at the same time), each player has 50%50% probability to win the game.
Zhang3 wants to win the game. Please help her to choose a weapon so that the probability to win is maximized. Print the optimal probability.
InputThe first line of the input gives the number of test cases, T(1≤T≤100)T(1≤T≤100). TT test cases follow.
For each test case, the first line contains an integer n(1≤n≤1000)n(1≤n≤1000), the number of weapons in the game.
Then nn lines follow, the ithith of which contains two integers Ai,Di(1≤Ai≤100,1≤Di≤10000)Ai,Di(1≤Ai≤100,1≤Di≤10000), representing the Damage and the Delay of each weapon.
The sum of nn in all test cases doesn't exceed 20002000.
OutputFor each test case, print a line with a real number p(0≤p≤1)p(0≤p≤1), representing the optimal probability.
Your answers should have absolute or relative errors of at most 10−610−6.
Sample Input
2
1
100 100
4
50 50
40 20
30 10
20 100
Sample Output
0.5
0.875
题意:
父亲 和 儿子 对战游戏:
从n个武器中选择一种,每种武器有伤害A,两次使用的时间间隔D
父亲的武器随机选择,儿子选一种武器,使得儿子获胜概率最大。
输出最大获胜率
思路:
贪心,儿子选择性价比最高的,使得在时间相同的情况下打出的伤害更快达到100;
父亲选择强道具的概率 = 强道具个数 / n;
则儿子获胜概率为 (1/2)强道具个数 / n;
1)父亲未选择强武器,概率(n - 强道具个数)/ 强道具个数;
2)在此情况下儿子胜率为(n - 强道具个数)/ 强道具个数
最大概率为两数和
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<bitset>
#include<cassert>
#include<cctype>
#include<cmath>
#include<cstdlib>
#include<ctime>
#include<deque>
#include<iomanip>
#include<list>
#include<map>
#include<queue>
#include<set>
#include<stack>
#include<vector>
#include <vector>
#include <iterator>
#include <utility>
#include <sstream>
#include <limits>
#include <numeric>
#include <functional>
using namespace std;
#define gc getchar()
#define mem(a) memset(a,0,sizeof(a))
//#define sort(a,n,int) sort(a,a+n,less<int>()) #define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pii;
typedef char ch;
typedef double db; const double PI=acos(-1.0);
const double eps=1e-6;
const int inf=0x3f3f3f3f;
const int maxn=1e5+10;
const int maxm=100+10;
const int N=2e5+10;
const int mod=1e9+7; double P = 0;
double A = 0 , D = 0;
double Bestchoice = 0;
double T = 0;
double T_min = 1e9;
int main()
{
int t = 0;
int n = 0;
cin >> t;
while(t--)
{
Bestchoice = 0;
T = 0;
T_min = 1e9;
cin >> n;
for(int i = 0;i<n;i++)
{
cin >> A >> D;
T = D * ((100+A-1)/A - 1);
if(T == T_min)
{
Bestchoice += 1;
}
if(T < T_min)
{
T_min = T;
Bestchoice = 1;
}
}
P = (n-Bestchoice)/n + Bestchoice/(n*2);
cout << setprecision(2) << P <<endl;
}
return 0;
}
B - Blow up the Enemy的更多相关文章
- [LeetCode] Boom Enemy 炸弹人
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- Leetcode: Bomb Enemy
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- UVALive 7146 Defeat the Enemy(贪心+STL)(2014 Asia Shanghai Regional Contest)
Long long ago there is a strong tribe living on the earth. They always have wars and eonquer others. ...
- UVa 7146 Defeat the Enemy(贪心)
题目链接: 传送门 Defeat the Enemy Time Limit: 3000MS Memory Limit: 32768 KB Description Long long ago t ...
- cocos2dx游戏开发——微信打飞机学习笔记(七)——Enemy的搭建
一.文件创建~ Enemy.h Enemy.cpp 二.How to do? 由于我是已经完成成个游戏的功能,所以我会将游戏中enemy所需要的很多功能基本上都先考虑到了,如果大家自己在做的时候也许没 ...
- Unity3D学习笔记——选择Enemy
一.步骤: 1.创建三个Cube,并将这三个Cube的Cube的Tag设为Enemy 2.导入第一人称视角的资源 3.创建名为Targeting的C#脚本 4.编写Targeting脚本,并将它附到第 ...
- Defeat the Enemy UVALive - 7146
Long long ago there is a strong tribe living on the earth. They always have wars and eonquer other ...
- [LeetCode] Bomb Enemy 炸弹人
Given a 2D grid, each cell is either a wall 'W', an enemy 'E' or empty '0' (the number zero), return ...
- LostRoutes项目日志——敌人精灵Enemy解析
Enemy类在Enemy.js中,类Enemy类继承自PhysicsSprite,以便于可以使用物理引擎中的一些特性. 原版的Enemy.js: var Enemy = cc.PhysicsSprit ...
- UVALive 4426 Blast the Enemy! 计算几何求重心
D - Blast the Enemy! Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Subm ...
随机推荐
- 为什么阿里的dubbo注册中心要放弃zookeeper, 而用Nacos?
首先,那么为什么说zookeeper不适合做服务注册中心呢? 从CAP角度来看 有个思考,从CAP角度考虑,服务注册中心是CP系统还是AP系统呢? 首先,服务注册中心是为了服务间调用服务的,那么绝对不 ...
- MySQL的表空间释放
概述 最近为了对 MySQL 数据库磁盘占用瘦身,对一张近100GB表的历史数据进行了 delete 删除,删除了约2/3的数据,删除后发现该表占用的空间并未减少.通过下面语句查看该表的磁盘占用情况: ...
- 题目集8~9总结性Blog
一.前言 对这两次题目集的总结: 这两次题目集相较于上次迭代作业来说,在题目量和难度上都做了下调.但要求我们在理解题目意思.设计好程序结构.掌握并运用知识这三方面有一定的要求.涉及到类的继承与多态,抽 ...
- HashMap知识点梳理、常见面试题和源码分析
本博客是包括HashMap在内的相关知识点博文链接的入口,从介绍哈希表的基本概念开始,到HashMap的应用.实现原理和常见面试题,包括分析其源码,还包括相关知识点的延伸,例如HashSet等. ...
- Django Web应用开发实战第四章
一.设置响应方式 网站的运行原理遵从HTTP协议,分为HTTP请求和HTTP响应.HTTP响应也称为状态码,分为5种状态:消息.成功.重定向.请求错误和服务器错误.若以使用频率划分,HTTP状态码分为 ...
- ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分
ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分 自媒体跑分 内屏 NVIDIA GeForce RTX 4070 Ti SUPE ...
- Android Studio 虚拟机一直黑屏原因及解决办法
虚拟机一直黑屏原因: android模拟器在创建时,一般默认设置为热启动,所以每次关闭模拟器时,会提示保存当前运行界面状态,若选择取消,则下一次启动会以最近一次保存的状态启动显示.如果某次关闭时保存的 ...
- 在SpringCloud中的相关报错
在SpringCloud中使用REST服务时 使用前需要先在配置类中注入RestTemplate的Bean 然后再使用 自动装配即可 @Autowired private RestTemplate r ...
- 阿里云javascript分片上传失败的解决办法
前端项目:React + Antd mobile + 阿里云OSS Node.js SDK实现文件上传. 在电脑上运行良好,放到手机上大文件就上传失败. 打开Chrome,地址栏输入`chrome:/ ...
- SM30里DEC数据显示0
需求:DEC数据在维护的时候显示0 1,设置数据元素对于的域带转换历程. 2,写转换历程函数(注意两个历程的输入和输出类型,这个需要修改) FUNCTION conversion_exit_zdays ...