首页 > 其他分享 >Educational Codeforces Round 163 (Rated for Div. 2) 补题记录(A~A)

Educational Codeforces Round 163 (Rated for Div. 2) 补题记录(A~A)

时间:2024-04-17 21:13:06浏览次数:15  
标签:Educational Rated int cin long 不降 补题 拆分

A

容易发现若 \(S\) 串中 \(s_i\) 为特殊字符,则令 \(s_i=s_{i+1}\),此时 \(s_i\neq s_{i-1}\)。则找到一个 \(j\) 满足 \(s_i=s_{i+1}=s_{i+2}=\ldots=s_j\neq s_{j+1}\),则 \(s_j\) 也一定为特殊字符。

所以若 \(2\mid n\) 则构造 \(\frac{n}{2}\) 个 AAB,否则必然无解。

#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        if (n & 1)
            cout << "NO\n";
        else {
            cout << "YES\n";
            for (int i = 1; i <= n / 2; i++)
                cout << "AAB";
            cout << '\n';
        }
    }
    return 0;
}

B

考虑贪心。

首先若原序列 \(a\) 就已经单调不降,那么就已经满足条件。

否则考虑按照下标从小到大来贪心。若一个数拆分成两个数之后和她前面的所有数构成了单调不降,那么就拆分;否则就不拆分。

最后判断一下拆分完之后的序列是否单调不降即可。时间复杂度为 \(O(n)\)。

#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 500010;
int a[N];
signed main() {
    int T;
    cin >> T;
    while (T--) {
        int n;
        cin >> n;
        for (int i = 1; i <= n; i++)
            cin >> a[i];
        if (is_sorted(a + 1, a + n + 1))
            cout << "YES\n";
        else {
            vector<int> arr;
            for (int i = 1; i <= n; i++) {
                int x = a[i] / 10, y = a[i] % 10;
                if (x <= y && (arr.empty() || arr.back() <= x))
                    arr.push_back(x), arr.push_back(y);
                else
                    arr.push_back(a[i]);
            }
            if (is_sorted(arr.begin(), arr.end()))
                cout << "YES\n";
            else
                cout << "NO\n";
        }
    }
    return 0;
}

标签:Educational,Rated,int,cin,long,不降,补题,拆分
From: https://www.cnblogs.com/BaiduFirstSearch/p/18141774

相关文章

  • CodeTON Round 8 (Div. 1 + Div. 2, Rated, Prizes!) 补题记录(A~A)
    A猜测结论。发现当且仅当\(k=1\)或者\(n=k\)时有解,否则无解。对于\(k=1\)时构造序列\(1,2,3,\ldots,n\)满足条件。对于\(k=n\)时构造序列\(1,1,1,\ldots,1\)满足条件。时间复杂度为\(O(n)\)。#include<bits/stdc++.h>#defineintlonglongusingnamespaces......
  • Educational Codeforces Round 157 (Rated for Div. 2) 复盘
    又是vp的稀烂的一场。A没问题。被B一道800卡了。但是确实非常简单,就是从式子上入手,让\(|x_1-x_2|+|y_1-y_2|\)最小就可以了。所以就把两维度分开来看,这两维之间的距离是不会影响代价的,这是曼哈顿距离的特点。那么就很明显了,就是从中间分开。但是我vp的时候并没有看出来。而是......
  • 2024牛客暑假多校第四场补题
    B每个堆的石子最多操作a[i]-1次#include<iostream>#include<fstream>#include<unordered_map>#include<vector>#include<cstring>#include<string>#include<queue>#include<stack>#include<algorithm>#includ......
  • Educational Codeforces Round 158 (Rated for Div. 2) C
    链接一个为了1300的题目而写的总结。挺可怕的。赛时写了一个按位贪心,但是假了。我现在就是不知道,如果做法想假了,waontest2到底要怎么来判断。我找不到反例,那就只能坐着等死。真的太难受了。要是做题能不能做对全看的想到的第一个做法对不对,和他有没有错在一些很离谱的地方,这我......
  • 天梯赛真题补题单(L2-1 ~ L2-4)
    L2-1点赞狂魔#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLN=200200,M=2020,INF=0x3f3f3f3f;LLn;structnode{strings;LLsum;}a[N];boolcmp(nodel,noder){if(l.sum!=r.sum)......
  • VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) 1.19 - 运营商 Kubernetes
    VMwareTanzuKubernetesGridIntegratedEdition(TKGI)1.19-运营商Kubernetes解决方案Kubernetes-basedcontainersolutionwithadvancednetworking,aprivatecontainerregistry,andlifecyclemanagement请访问原文链接:https://sysin.org/blog/vmware-tkgi/,查......
  • CodeForces Round #939(Div. 2) 补题记录(A~D)
    ABCD首先考虑:对于\(a\)数组的任意一段区间\([l,r]\),都总有一种办法可以让这些数字全部变成\(0\)。构造:若\([l,r]\)一段区间全部为\(0\),则已经达成条件。否则,将所有\(x\in[l,r]\cap\textbf{N}_+\)的\(a_x\neq0\),都让\([x,x]\)这一段区间取\(\text{mex}\)。......
  • Educational Codeforces Round 164 (Rated for Div. 2)
    目录写在前面ABCDEF写在最后写在前面比赛地址:https://codeforces.com/contest/1954本来有机会上大分但是唐了E没调出来呃呃。小号比大号分高了呃呃以后想休闲直接打大号了哈哈A数学。若要将\(n\)个位置全部涂成颜色\(i\),则一定要修改\(n-\operatorname{count}(i)\)......
  • 2024SMUSpring天梯4补题
    L2-3:用扑克牌计算24点题意:思路:全排列枚举ordfs得到全排列。枚举方式和"飞机降落"一样。题目类似"电阻组合"那题。要注意的是要枚举3种东西:数字的全排列,符号的全排列,以及!括号的情况!。一开始括号只是考虑到样例那种情况,wa两个点。括号会影响除法的计算。总的来说:枚举出全排列......
  • [题解](A-G)Atcoder Educational DP Contest(更新中)
    AtcoderEducationalDPContest\(\textbf{A.Frog1}\)对于一块石头\(i(3\lei\leN)\),\(i-1\)和\(i-2\)均能到达。用\(f[i]\)表示跳到第\(i\)个石头用的最小体力消耗:\[f[i]=min(abs(h[i]-h[i-1])+f[i-1],abs(h[i]-h[i-2])+f[i-2])\qquadi\ge3\]时间复杂度\(O(n)\)。......