题解 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\n"); return 0;}
    A+=1;
    if(A%4==1) {printf("1 A\n"); return 0;}
    A+=1;
    if(A%4==1) {printf("2 A\n"); return 0;}
    //if can be "B"
    if(B%4==3) {printf("0 B\n"); return 0;}
    B+=1;
    if(B%4==3) {printf("1 B\n"); return 0;}
    B+=1;
    if(B%4==3) {printf("2 B\n"); return 0;}
    //if can be "C"
    if(C%4==2) {printf("0 C\n"); return 0;}
    C+=1;
    if(C%4==2) {printf("1 C\n"); return 0;}
    C+=1;
    if(B%4==2) {printf("2 C\n"); return 0;}
    //if can be "D"
    if(D%4==0) {printf("0 D\n"); return 0;}
    D+=1;
    if(D%4==0) {printf("1 D\n"); return 0;}
    D+=1;
    if(D%4==0) {printf("2 D\n"); return 0;}

    return 0;
}
上一篇:堆排序


下一篇:telnet测试IP和端口是否能访问