P8705题解

先贴上答案

#include<iostream>
using namespace std;
int main() {
    string ans [] = {
        "3880",
        "52038720",
        "10",
        "241830",
        "1340",
    };
    char T;
    cin >> T;
    cout << ans[T - 'A'] << endl;
    return 0;
}


解析

A 跑步训练


- 最初体力值$10000$
- 跑步每分钟损耗的体力$600$
- 休息每分钟增加的体力$300$

小明打算跑一分钟、休息一分钟,如此循环。

$2$分钟体力值的变化为$-600 + 300 = -300$,每$2$分钟消耗$300$体力值。

但前$64$分钟消耗的体力值为$64 \div 2 \times 300 = 9600$,剩下的$400 < 600$,不够跑一分钟。

每秒消耗的体力值为$600 \div 60 = 10,400 \div 10 = 40$,只够跑$40$秒。

总共跑了$64 \times 60 + 40 = 3880$秒。

B 纪念日


$1921$年,$7$月,$23$日,有 $12$小时,$24 \sim 31$日,有$192$小时,共$204$小时,$8 \sim 12$月,有$153$ 天,合$3672$小时,那么一共是$3876$小时。

$1922 \sim 2019$年,一年$365$天,共$35770$天,期间有$24$个闰年,会多出来$24$天,共$35794$ 天,合$859056$小时。

$2020$年,闰年,$1 \sim 6$月,共$182$天,合$4368$小时,加上$7$$1$日的$12$小时,共$4380$小时。

以上加在一起是$867312$小时,合$52038720$分钟。

C 合并检测


设全国一共有$x$人,每$100$人有一个阳性,那么全国就有$\dfrac{x}{100}$人为阳性,每$k$人用一个试剂盒,做了 $\dfrac{x}{k}$次,如果有阳性则加做$k$次,全国每个阳性都会使次数加$k$次,一共加了$\dfrac{xk}{100}$次,总共是 $\dfrac{xk}{100} + \dfrac{x}{k}$次,$x$为常数,约掉之后就是$\dfrac{k}{100} + \dfrac{1}{k}$次,参与过九年义务教育的人都知道,要让$\dfrac{k}{100} + \dfrac{1}{k}$最小,$k$$10$就行了。

D REPEAT 程序


这怎么这么像 python。

稍微改亿下不就行了。

代码过于长,所以不贴了,楼上大佬有,可以自己看。

答案案为$241830$

E 矩阵


这不 dp 吗?

每个数都得放在第一行或第二行的第一个没有放数的位子上,这不就简单了吗。

第一行:

dp[i][j]=dp[i-1][j]+dp[i][j]

第二行:

dp[i][j]=dp[i][j-1]+dp[i][j]

注意每加一次都要取余!

代码就不贴了(状态转移方程不都在上面了吗)答案是$1340$

## END
本人的第$n$篇题解,希望能帮助大家

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值