zoukankan      html  css  js  c++  java
  • 【2020 杭电多校第四场】1002 Blow up the Enemy

    Blow up the Enemy

    题意

    有对父子在玩枪战游戏,有 n 把枪,,每把枪都有两个属性 A :攻击力 ,D:冷却时间。

    初始都有 100 滴血,父亲会随机从 n 把枪里选择一把枪。

    关于比赛有如下规定:

    1. 他俩第一枪一定是同时开的
    2. 能开枪就开枪
    3. 如果两人同时死亡,各有 50 % 的概率获胜

    现在要你为儿子选择一把枪,使得其胜利的概率最大,输出这个概率

    吐槽

    读完这题,看到数据范围上来想的就是暴力,好傻啊,儿子肯定会选择杀掉 100 滴血最快的一把枪啊。

    然后写代码的时候把时间最长的当做最厉害的枪了,交了5,6发都没有发现问题。

    题解

    直接判断杀掉 100 滴血最快的枪有几把,输出 (1.0 - x / 2 * n)

    代码

    #include <bits/stdc++.h>
    #define emplace_back push_back
    #define pb push_back
    #define fuck system("pause")
    using namespace std;
    typedef long long ll;
    const int mod = 1e9 + 7;
    const double eps = 1e-6;
    const int inf = 0x3f3f3f3f;
    const int N = 2e5 + 10;
    
    struct node
    {
        int a, d;
    } arr[N];
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while (T--)
        {
            int n;
            scanf("%d", &n);
            int minn = inf, num = 0;
            for (int i = 1; i <= n; i++)
            {
                scanf("%d%d", &arr[i].a, &arr[i].d);
                int now = (99 / arr[i].a) * arr[i].d;
                if (now == minn)
                    num++;
                else if (now < minn)
                {
                    minn = now;
                    num = 1;
                }
            }
            printf("%.6f
    ", (float)1.0 * (2 * n - num) / 2 / n);
        }
        // fuck;
        return 0;
    }
    
  • 相关阅读:
    9.19 数组 冒泡排序和二分法
    9,18 考试
    html5学习拓展
    第七天,
    第六天 js 开始
    第五天 列表 流
    第四天 样式,框架
    硬件攻城狮设计需要考量的11个关键因素
    步进电机的驱动方式
    MOS管防反接电路设计
  • 原文地址:https://www.cnblogs.com/valk3/p/13408430.html
Copyright © 2011-2022 走看看