首页 > 其他分享 >Educational Codeforces Round 75 C Minimize The Integer

Educational Codeforces Round 75 C Minimize The Integer

时间:2023-02-03 10:03:10浏览次数:38  
标签:Educational const Minimize typedef long Codeforces int 这道题 include

Educational Codeforces Round 75 C   Minimize The Integer_i++

Educational Codeforces Round 75 C   Minimize The Integer_字符串_02

这道题的意思就是给出一个由数字组成的字符串,相邻的数字可以互换位置,但是如果相邻的为同奇同偶这样就不能交换。让我们求交换任意次数可以产生的最小数。

这条限制就是说明了,奇数偶数的相对顺序是不能变的,这道题主要是找不变量,如果把这一点相通了就好理解,我们分别把奇数和偶数取出来,要使最后得数最小就要是最高位的数字尽可能小,所以每次取两个队列小的那一个输出就好了。

AC代码:

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<stdlib.h>
#include<queue>
#include<stack>
#include<iomanip>
#include<math.h>
using namespace std;
typedef long long ll;
typedef double ld;
const int INF = 1e9;
int i,j,k;
const int N = 300010;
int q,n,res;
char s[N];
int main()
{
    cin>>q;
    getchar();
    while(q--)
    {
        scanf("%s",s);
        int len=strlen(s);
        queue<char>ans1;
        queue<char>ans2;
        for(i=0; i<len; i++)
        {
            res=s[i]-'a';
            if(res&1)
                ans1.push(s[i]);
            else
                ans2.push(s[i]);
        }
        for(i=0; i<len; i++)
        {
            if((ans2.empty()||ans1.front()<ans2.front())&&!ans1.empty())
            {
                cout<<ans1.front();
                ans1.pop();
            }
            else
            {
                cout<<ans2.front();
                ans2.pop();
            }
        }
        cout<<endl;
    }
    return 0;
}

 

标签:Educational,const,Minimize,typedef,long,Codeforces,int,这道题,include
From: https://blog.51cto.com/u_15952369/6034937

相关文章

  • codeforces 595 C2. Good Numbers (hard version)
    给出Q组查询,每组给出一个N找到一个>=n的m,m可以分解成不同的3的幂次相加。可以看题意解释,就是转化为3^0,3^1,...,3^m,每个只能出现最多一次,但是可以不同组合,输出符合条件最......
  • codeforces 595 B2 Books Exchange (hard version)
    这道题的意思就是有n本书,每本书都有自己的编号,每次可以移动一本书,把这个本书移动到当前编号对应的位置,求移动几次可以使得编号和位置对应起来。比如样例32312第一......
  • Codeforces Round #848 (Div. 2)(持续更新)
    Preface这场打的可以说发挥了水平但没有完全发挥的说ABC都是一眼一遍过,结果D是我最怕的期望题,大概推了个DP的式子但感觉成环了初始条件又不够(flag)就弃了本来当时看E只有......
  • Codeforces Round #845 (Div. 2) and ByteRace 2023(A,B,C)
    CodeforcesRound#845(Div.2)andByteRace2023(A,B,C)AA这个题目大意是有n个数,我们需要让ai和ai+1的奇偶性不一样我们可以让相邻的两个数变成一个数,那个数就是这两个......
  • 2.2 vp Codeforces Round #848 (Div. 2)
    A-FlipFlopSum题意给出长度为n的序列a,a中只包括1和-1,你必须操作一次,让相邻两个元素由1变-1或由-1变1,问操作后数组总和最大多少思路暴力即可voidsolve(){ intn......
  • Codeforces Round #848 (Div. 2)
    题目链接A核心思路按照题目模拟就好了//Problem:A.FlipFlopSum//Contest:Codeforces-CodeforcesRound#848(Div.2)//URL:https://codeforces.com/cont......
  • Codeforces Round #831 (Div. 1 + Div. 2) A-H
    CodeforcesRound#831(Div.1+Div.2)A-H题解好久之前写的,发现忘记发了比赛题目质量高,推荐!传送门CodeforcesRound#831(Div.1+Div.2)A.FactoriseN+M题......
  • 1877.minimize-maximum-pair-sum-in-array 数组中最大数对和的最小值
    问题描述1877.数组中最大数对和的最小值解题思路贪心将数组从小到大排序,最小最大配对,次小次大配对,依次配对,结果就是这些配对和的最大值。代码classSolution{publi......
  • Codeforces Round #848 (Div. 2) A~C
    A.给出一个-1,1序列,操作是交换相邻位置的符号,一定要操作一次,求最大sum。只有4种情况,扫一遍判断是否出现即可。B题面写得真清楚啊:)#include<bits/stdc++.h>usingnam......
  • Codeforces Round #848 (Div. 2) A~F 题解
    A.FlipFlopSum能换\(-1,-1\)就换,不能能换\(1,-1\)或\(-1,1\)也可以,否则只能换\(1,1\)。B.TheForbiddenPermutation如果原序列一开始就是好的那就结束,否则......