题解 CF1191A 【Tokitsukaze and Enhancement】

感觉各位都是直接得结论,,

那么说一下我的思路。

考虑用四个变量 A,B,C,D,分别记录初始的 HP

然后直接if判断

即可


一些细节:

因为我们希望使等级最高,所以当然考虑从可能是 A 等级的情况判断

如果不能一步登天,那么把对应的 A 变量加一,然后判断

然后以此类推

即可

下面代码里的那些*+=1也就是考虑让他们加上题目允许加的 HP 的点数

参考代码:

#include <iostream>
#include <stdio.h>

using namespace std;

int HP, A, B, C, D;

int main()
{
    scanf("%d", &HP);
    A=B=C=D=HP;
    //if can be "A"
    if(A%4==1) {printf("0 A
"); return 0;}
    A+=1;
    if(A%4==1) {printf("1 A
"); return 0;}
    A+=1;
    if(A%4==1) {printf("2 A
"); return 0;}
    //if can be "B"
    if(B%4==3) {printf("0 B
"); return 0;}
    B+=1;
    if(B%4==3) {printf("1 B
"); return 0;}
    B+=1;
    if(B%4==3) {printf("2 B
"); return 0;}
    //if can be "C"
    if(C%4==2) {printf("0 C
"); return 0;}
    C+=1;
    if(C%4==2) {printf("1 C
"); return 0;}
    C+=1;
    if(B%4==2) {printf("2 C
"); return 0;}
    //if can be "D"
    if(D%4==0) {printf("0 D
"); return 0;}
    D+=1;
    if(D%4==0) {printf("1 D
"); return 0;}
    D+=1;
    if(D%4==0) {printf("2 D
"); return 0;}

    return 0;
}
原文地址:https://www.cnblogs.com/BlueInRed/p/12617412.html