• Codeforces 1291A


    题目大意:

    给定一个字符串数字(很大)

    问能不能删除一些数字(或者不删除)

    使得剩余的数字各位数相加是偶数,但是这整个数字是个奇数

    解题思路:

    统计字符串中单个数字奇数的个数

    分情况

    个数为0或者1时,显然不存在这样的数字,输出-1

    个数大于等于2且为偶数时,只需要保证最后一位是奇数,从后往前删除字符直到遇到奇数位

    个数大于2且为奇数时,保证最后一位为奇数,并且还要删除一位奇数

    #include<bits/stdc++.h>
    using namespace std;
    void solve(){
        int n,i,n1=0;
        string s;
        cin>>n>>s;
        for(i=0;i<n;i++)
            if((s[i]-'0')%2)
                n1++;
        if(n1&&n1%2==0){
            while(n&&(s[n-1]-'0')%2==0){
                s.erase(n-1,1);
                n--;
            }
        }
        else if(n1>2){
            while(n&&(s[n-1]-'0')%2==0){
                s.erase(n-1,1);
                n--;
            }
            s.erase(n-1,1);//遇到奇数,删除后继续删偶数
            n--;
            while(n&&(s[n-1]-'0')%2==0){
                s.erase(n-1,1);
                n--;
            }
        }
        else
            s="-1";
        cout<<s<<'
    ';
    }
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);cout.tie(0);
        int T;cin>>T;while(T--)
            solve();
        
        return 0;
    }
  • 相关阅读:
    如何优雅地删除 Linux 中的垃圾文件
    session:
    cookie:
    多对多表结构设计:
    接口测试:
    oracle基本笔记整理
    oracle基本笔记整理
    oracle基本笔记整理
    2016年寒假心得
    2016年寒假心得
  • 原文地址:https://www.cnblogs.com/stelayuri/p/12254433.html
Copyright © 2020-2023  润新知