B_NCPC题解

题目解析

首先我想吐槽一下,我真的太蠢了。竟然被B题卡的做不出来,后面就不做了。这条题目我本来已经有思路了,可是通过率永远只要30%几老超时,也有状态不行的原因(寒假玩的我不亦乐乎)废话不多说。

本题的题意是只要判断参赛选手是否有可能赢,仔细想想就会发现这题实际上跟最美味的人息息相关,若最强者是偶数后面的人就都有可能赢,而最强之人因为免不了互相切磋而同时败北。这样一来代码就好写了。

using namespace std;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        vector<int> arr(n);
        vector<int>brr(n);
        for(int i=0;i<n;++i){
            cin>>arr[i];
            brr[i]=arr[i];
        }
        sort(brr.begin(),brr.end(),greater<int>());
        int sign=brr[0];
        bool bz;
        int cnt=1;
        for(int i=1;i<n;++i){
            if(brr[i]==brr[0])cnt++;
        }
        if(cnt%2==1){
            bz=1;
        }
        else bz=0;
        if(bz){
            for(int i=0;i<n;++i){
                if(arr[i]==sign)cout<<1;
                else cout<<0;
            }
        }
        else{
            for(int i=0;i<n;++i){
            if(arr[i]==sign)cout<<0;
                else cout<<1;
        }
            
            }
            cout<<'\n';
        }
    
    return 0;
}
全部评论

相关推荐

2025-12-30 16:42
同济大学 C++
仁狂躁使者:哎呀,不用担心,我当时配环境配了两天,项目捋不清就问问导师能不能用ai,慢慢就清了,会好起来的
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务