列表

详情


NC205420. L1-3Pokémon

描述

StarrySky 终于抓到了第一只 6v 闪光百变怪,具有孵蛋神器之称的百变怪,能够跟绝大多数 Pokémon 生蛋,而且 6v (指 6 项个体值属性全为最棒)的百变怪能够在孵蛋的时候大大提升孵化出 的概率,只是不知道非异国的闪光百变怪会不会增加孵化出闪光 Pokémon 的概率呢?

现在 StarrySky 想利用这只百变怪和喷火龙生蛋,并且得到 6v 的闪光小火龙,假设已知这两只 Pokémon 孵化出的后代为 0v 的概率为 p_0,1v 的概率为 p_1,...,6v 的概率为 p_6,且闪光的概率固定为 ,那么,StarrySky 得到自己想要的小火龙的概率就为:.

虽然 6v 闪光百变怪提高了孵化出 的可能,但是孵化出让自己满意的 Pokémon 本就是一件需要时间、耐心的工作,于是,StarrySky 突发奇想,如果自己想要的是 cv 的小火龙,并且闪光与否用 f 表示,f 为 1 时表明想要闪光 Pokémon,f 为 0 时表明只想要普通的不闪光 Pokémon,那么,自己孵化出该 Pokémon 的概率又会变成多少?

输入描述

第一行输入 7 个用空格隔开的百分数,依次表示为孵化出 0v, 1v, ..., 6v Pokémon 的概率。

第二行输入两个整数 c, f,表示想要孵化得到 cv,f 闪光的 Pokémon。

输出描述

输出仅一行一个百分数,表示孵化得到 cv,f 闪光的 Pokémon 的概率,保留两位小数。

示例1

输入:

10.00% 15.00% 15.00% 10.00% 10.00% 15.00% 25.00%
6 1

输出:

0.25%

说明:

孵化出 6v 的概率为 25\%,闪光的概率为 1\%,所以孵化出闪光 6v 的概率为:25\%\ \cdot 1\%\ =\ 0.25\%.

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(g++ 7.5.0) 解法, 执行用时: 2ms, 内存消耗: 364K, 提交时间: 2023-04-19 13:58:53

#include<cstdio>
double v[7];
int c;
bool f;
int main(){
    for(int i=0;i<7;++i){
        scanf("%lf",v+i);
        getchar();
    }
    scanf("%d%hhd",&c,&f);
    printf("%.2lf%%",v[c]*(f?0.01:0.99));
    return 0;
}

C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2020-05-03 17:16:13

#include<stdio.h>
int main()
{
	double a[7];
	int cv,f;
    int i;
	for(i=0;i<7;i++)
	{
	scanf("%lf%%",&a[i]);
	}
	scanf("%d%d",&cv,&f);
	if(f==1)
	printf("%.2f%%",a[cv]*0.01);
	if(f==0)
	printf("%.2f%%",a[cv]*0.99);
}

C++14(g++5.4) 解法, 执行用时: 2ms, 内存消耗: 376K, 提交时间: 2020-07-30 12:41:11

#include<bits/stdc++.h>
using namespace std;
int main(){
	double a[10];
	int c,f;
	for(int i=0;i<=6;i++){
		cin>>a[i];
		getchar();
	}
	cin>>c>>f;
	printf("%.2f%%",(f==1?a[c]*0.01:a[c]*0.99));
} 

C++ 解法, 执行用时: 4ms, 内存消耗: 420K, 提交时间: 2022-05-02 19:27:15

#include<bits/stdc++.h>
using namespace std;
double a[10];
int main(){
	for(int i=0;i<=6;i++){
		scanf("%lf%%",&a[i]);
	}
	int c,f;
	cin>>c>>f;
	printf("%.2lf%%",a[c]*(f==1?0.01:0.99));
}

Python3(3.5.2) 解法, 执行用时: 23ms, 内存消耗: 3556K, 提交时间: 2020-05-21 18:12:47

p = list(map(lambda x: x[:-1], input().split()))
p = list(map(float, p))
c, f = map(int, input().split())
f = 0.01 if f == 1 else 0.99
print("%.2f%%" % (p[c]*f))

上一题