首页 > 其他分享 >Codeforces Round #855 (Div. 3) E1 E2

Codeforces Round #855 (Div. 3) E1 E2

时间:2023-03-04 12:14:06浏览次数:44  
标签:855 const cc LL Codeforces Div E1 YES E2

E1. Unforgivable Curse (easy version)

https://codeforces.com/contest/1800/problem/E1

题目大意:

这是这个问题的一个简单版本。在这个版本中,k始终是3。

有两个长度为n的字符串s和c。

我们可以在k或k+1的距离内任意多次交换字符串中的的字母。在简单版本中,可以在3或4的距离交换字母【|i-j|=3或|i-j|=4,Drahyrt可以改变s中i和j位置的字母。】

问我们s是否可以变成c?
input 
7
6 3
talant
atltna
7 3
abacaba
aaaabbc
12 3
abracadabraa
avadakedavra
5 3
accio
cicao
5 3
lumos
molus
4 3
uwjt
twju
4 3
kvpx
vxpk
output 
YES
YES
NO
YES
NO
YES
NO

详细说明见代码内部注释部分

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-1e18;
const LL N=1e6+10,M=4010,P=131;
const LL mod=998244353;
const double PI=3.1415926535;
#define endl '\n'
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int T=1;
    cin>>T;
    while(T--)
    {
        LL n,k;
        cin>>n>>k;
        string s,c;
        cin>>s>>c;
        string ss=s,cc=c;
        sort(ss.begin(),ss.end());
        sort(cc.begin(),cc.end());
        if(ss!=cc) cout<<"NO"<<endl;//如果个数对不上或者是多了别的字符的情况
        else
        {
            bool flag=true;
            //题目中说k或者k+1的范围都可以移动,那么说明只要位置足够大,我们左移右移都可以以一格一格的方式向任意方向变动
            //但是需要注意的是,一旦我们移动到边界的时候,一边足够大,我们也可以向一边扩大后继续一格一格移动
            //但是如果两边都受到限制的时候,那么就只能原地呆着,这时候就只需要对比同位置的si和ci是否相等即可
            for(int i=0;i<n;i++)
            {
                if(i-k<0&&i+k>=n)//只有会同时出界的时候才不能移动
                {
                    if(s[i]!=c[i])//不能移动的话就需要进行对比当前位置字符是否相同
                    {
                        flag=false;//不相同的话就说明一定得移动,但是位置受限不能移动
                        break;
                    }
                }
            }
            if(flag==false) cout<<"NO"<<endl;
            else cout<<"YES"<<endl;
        }
    }
    return 0;
}

E2. Unforgivable Curse (hard version)

https://codeforces.com/contest/1800/problem/E2
代码和E1一样

标签:855,const,cc,LL,Codeforces,Div,E1,YES,E2
From: https://www.cnblogs.com/Vivian-0918/p/17175168.html

相关文章

  • Codeforces Round 853 (Div. 2)(C,D)
    CodeforcesRound853(Div.2)(C,D)CC题目大意就是给你\(n\)个数,我们可以按顺序得到接下来的\(m\)个序列,每一个操作是对前面一个序列的第\(p\)个数变成\(v\),保证每次变......
  • Codeforces Round #277 (Div. 2) A B
    http://codeforces.com/contest/486/problem/AA.CalculatingFunctiontimelimitpertest1secondm......
  • Codeforces Round #279 (Div. 2) A B C
    http://codeforces.com/contest/490/problem/AA题贪心水题A.TeamOlympiadtimelimitpertest1secondmemorylimitpertest256......
  • Codeforces Round #277.5 (Div. 2) C
    题目: http://codeforces.com/contest/489/problem/CC.GivenLengthandSumofDigits...timelimitpertest1secondmemorylimitper......
  • Codeforces Round #266 (Div. 2) C
    http://codeforces.com/contest/466/problem/CC.NumberofWaystimelimitpertest2secondsmemorylimitpertest256megabytes......
  • Codeforces Round #271 (Div. 2) A B D
    http://codeforces.com/contest/474A水题枚举每个字符即可A.Keyboardtimelimitpertest2secondsmemorylimitpertest256mega......
  • Codeforces Round #280 (Div. 2) A B C
    http://codeforces.com/contest/492A水题A.VanyaandCubestimelimitpertest1secondmemorylimitpertest256megabytes......
  • Codeforces Round #281 (Div. 2) A B
    http://codeforces.com/contest/493A第一次结构体开二维数组。。。A.VasyaandFootballtimelimitpertest2secondsmemorylimitper......
  • Codeforces Round #850 (Div. 2, based on VK Cup 2022 - Final Round)
    Preface补题,之前由于要准备开学考(其实只是临时抱佛脚罢了),所以好久没写题不过索性学校题目简单,微积分线代C程都满绩了(甚至溢出好多),思政被卡了一分满绩点,而大英不出所料3.7......
  • div水平垂直居中的四种方式
    div水平垂直居中的四种方式让div水平居中的方式,我所知道的就是以下这四种。目录div水平垂直居中的四种方式一、margin二、绝对定位三、子元素绝对定位父元素相对定位四、......