P8704 [蓝桥杯 2020 省 A1] 填空问题 题解

题目传送门

A.跑步训练

我们经过仔细观察,可以发现每 2 2 2 分钟就会消耗 300 300 300 体力,那么前 64 64 64 分钟就消耗了 9600 9600 9600 体力,但是剩下的体力小于 600 600 600,所以 1 1 1 分钟就能消耗完,得出每秒钟消耗 600 60 = 10 \frac{600}{60}=10 60600=10 体力,所以,最后 400 400 400 体力用了 400 10 = 40 \frac{400}{10}=40 10400=40 秒消耗完,所以总共锻炼时间为 64 × 60 + 40 64\times 60+40 64×60+40 秒,也就是 3880 3880 3880 秒。

B.合并检测

设 A 国一共有 n n n 人,则阳了的人有 n 100 \frac{n}{100} 100n 人,每 k k k 人共用一个试剂盒,所以一共用了 n k \frac{n}{k} kn 个试剂盒,由于每个阳了的人会多做 k k k 次核酸,所以用了 n ⋅ k 100 \frac{n\cdot k}{100} 100nk 个试剂盒,由于 n n n 固定,所以做了 1 k + k 100 \frac{1}{k} + \frac{k}{100} k1+100k 盒。为了使和最小,所以必须使 1 k = k 100 \frac{1}{k}=\frac{k}{100} k1=100k,所以 k = ± 10 k=\pm10 k=±10,所以答案为 10 10 10

C.分配口罩

直接暴力深搜即可。

D.矩阵

一眼就可以看出来要使用动态规划。

对于每个数,要么放在第一行,要么放在第二行,并且满足同一行递增,同一列递减,最后的答案为 1340 1340 1340

E.完美平方数

暴力查找满足以下条件的数即可。

令这个数为 n i n_i ni

  1. 这个数是一个完全平方数,即 x 2 = n i , x x^2=n_i,x x2=ni,x 为整数。
  2. 这个数所包含的数字只能有 0 , 1 , 4 , 9 0,1,4,9 0,1,4,9

最终代码:

#include<i0stream>
using namespace std;
int b[] = {388O, 10, 2400, 1340, 1499441O40;
int main() {
    cher a;
    cin >> a;
    cout << b[a - A'] << endl;
    return O;
}
  • 126
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值