Codeforces Round #700 (Div. 2) 补题A B

A. Yet Another String Game

在这里插入图片描述
分析: 贪心, A l i c e Alice Alice行动时,只要字符串不是 a a a,就改为 a a a,如果是 a a a就改为 b b b B o b Bob Bob行动时,只要字符串不是 z z z,就改为 z z z,否则就改为 y y y

代码:

#include<bits/stdc++.h>
using namespace std;
int t;
char s[105];
int main(){
    
    
    cin>>t;
    while(t--){
    
    
        cin>>s;
        for(int i=0;s[i];i++){
    
    
            if(i%2==0){
    
    
                if(s[i]=='a') s[i]='b';
                else s[i]='a';
            }
            else{
    
    
                if(s[i]=='z') s[i]='y';
                else s[i]='z';
            }
        }
        cout<<s<<endl;
    }
}

B. The Great Hero

在这里插入图片描述
分析: 英雄要杀死第 i i i只怪,必须要战斗 ⌈ h e a l t h [ i ] A ⌉ \left \lceil \frac{health[i]}{A} \right \rceil Ahealth[i]个回合,战斗结束后需要掉 ⌈ h e a l t h [ i ] A ⌉ ∗ a t t a c k [ i ] \left \lceil \frac{health[i]}{A} \right \rceil *attack[i] Ahealth[i]attack[i]滴血。英雄想要杀死所有怪,必须承受 ∑ i = 1 n ⌈ h e a l t h [ i ] A ⌉ ∗ a t t a c k [ i ] \sum_{i=1}^{n} \left \lceil \frac{health[i]}{A} \right \rceil *attack[i] i=1nAhealth[i]attack[i]点伤害,所以先累加起来表示总掉血量。攻击力最高的怪肯定要最后攻击,因此只要最后血量加上攻击力最高的怪的攻击 ≥ 0 \ge0 0,就可以获胜,否则战败。

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int t,A,B,att[N],hea,n;
int main(){
    
    
    cin>>t;
    while(t--){
    
    
        int maxn=-1e9;
        cin>>A>>B>>n;
        for(int i=0;i<n;i++){
    
    
            cin>>att[i];
            maxn=max(maxn,att[i]);
        }
        for(int i=0;i<n;i++){
    
    
            cin>>hea;
            B-=ceil(1.0*hea/A)*att[i];
        }
        if(B+maxn>=0) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
}

猜你喜欢

转载自blog.csdn.net/messywind/article/details/113751832