首页 > 其他分享 >Educational Codeforces Round 149 (Rated for Div. 2)

Educational Codeforces Round 149 (Rated for Div. 2)

时间:2023-05-26 09:14:26浏览次数:70  
标签:Educational Rated const int void typedef long Codeforces solve

Educational Codeforces Round 149 (Rated for Div. 2)

A - Grasshopper on a Line

思路:只有两种情况,x整除k时为x-1和1,否则为x

void solve() {
    int x, k;
    cin >> x >> k;
    if (x % k == 0) {
        cout << "2\n" << x - 1 << " " << x << "\n";
    } else {
        cout << "1\n" << x << "\n";
    }
}
View Code

 

B - Comparison String

思路:找出相同符号的最长序列,答案为最长数加一(连续m个相同符号表示有m+1个递增或递减的数,这m+1个数互不相同)

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;

typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=2e5+5,INF=0x3f3f3f3f,Mod=1e9+7;

const double eps=1e-6;
typedef long long ll;
//#define int long long



void solve(){
    int n;
    string s;
    cin>>n>>s;
    char l=s[0];
    int ma=1;
    for(int i=1,c=1;i<s.size();++i){
        if(s[i]==l)c++,ma=max(ma,c);
        else c=1,l=s[i];
    }
    cout<<ma+1<<'\n';
}
int32_t main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

C - Best Binary String

思路:使reverse的次数尽可能少,那么逆序对的数目尽可能少,每个?满足与前一个字符形成递增即可

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;

typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=2e5+5,INF=0x3f3f3f3f,Mod=1e9+7;

const double eps=1e-6;
typedef long long ll;
//#define int long long



void solve(){
    string s;
    cin>>s;
    for(int i=0;i<s.size();++i){
        if(s[i]=='?'){
            if(i==0)s[i]='0';
            else if(s[i-1]=='1')s[i]='1';
            else s[i]='0';
        }
    }
    cout<<s<<'\n';

}
int32_t main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

D - Bracket Coloring

思路:任意给符号分类,实际上只有两种“()”和“)(”,用栈的思想将符号分类。遇到‘(’,优先判断之前是否有未用过的‘)’,有则分到第二种,否则分到第一类,增加第一类‘(’的个数;同理遇到‘)’的情况;

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>PII;

typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=2e5+5,INF=0x3f3f3f3f,Mod=1e9+7;

const double eps=1e-6;
typedef long long ll;
//#define int long long



void solve(){
    string s;
    int n;
    cin>>n>>s;
    int a=0,b=0,x=0,y=0;
    bool aa=false,bb=false;
    for(int i=0;i<s.size();++i){
        if(s[i]=='('){x++;
            if(b)b--,s[i]='2',bb=true;
            else a++,s[i]='1',aa=true;
        }
        else{y++;
            if(a)a--,s[i]='1',aa=true;
            else b++,s[i]='2',bb=true;
        }
    }
    if(x==y){//cout<<s<<'\n';
        int c=(int)aa+(int)bb;
        cout<<c<<'\n';
        for(int i=0;i<s.size();++i){
            if(c==1)cout<<1<<' ';
            else cout<<s[i]<<' ';
        }cout<<'\n';
    }
    else cout<<"-1\n";

}
int32_t main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

标签:Educational,Rated,const,int,void,typedef,long,Codeforces,solve
From: https://www.cnblogs.com/bible-/p/17433539.html

相关文章

  • Codeforces 1439E - Cheat and Win
    模拟赛放了道*3500,结果全场都切了,非常恐怖。首先考虑怎么样的树是合法的,打个表发现SG函数值为\(\sum_{d}2^d·(\text{深度为d的点个数}\bmod2)\),换句话说后手必胜当且仅当每种深度的点数都是偶数。于是实际上我们只用建出虚树之后树上差分一下求出每个点被覆盖的情况,进而......
  • 【题解】Codeforces Round 737 (CF1557)
    VP情况:solve:4/5rank:431st评价:VP了一下,我这个shaberB直接5发罚时,耽误了二十多分钟,以及被D各种细节差点搞死。A.EzzatandTwoSubsequences(*800)题目描述:给定一个序列,将其分为\(2\)个组,要求这两个组的平均值之和最大,组内的数不要求在原序列中连续。题目分析:我们......
  • JPA通用策略生成器(@GeneratedValue 四种标准用法为TABLE, SEQUENCE, IDENTITY, AUTO)
    JPA通用策略生成器查看JPA的源码可知:packagejavax.persistence;/***Definesthetypesofprimarykeygenerationstrategies.**@seeGeneratedValue**@sinceJavaPersistence1.0*/publicenumGenerationType{/***Indicatesthatthepers......
  • CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!) A-E
    CodeTONRound4(Div.1+Div.2,Rated,Prizes!) A.BeautifulSequenceinta[N],poi[N];voidsolve(){intn=read(),ans=0;for(inti=1;i<=n;i++){a[i]=read();}for(inti=1;i<=n;i++){if(a[i]<=i)ans=1;}......
  • CodeForces 1827E Bus Routes
    洛谷传送门CF传送门比较神奇的题。定一个非叶子\(r\)为根。显然只用判断两个叶子是否可达。求出每个叶子向上能一步跳到的深度最浅的点\(p_i\),那么如果\(p_i\)不在一条链上就无解,因为两条路径没有交点。然后只用判断\(p_i\)最深的叶子的\(p_i\)能不能一步到达其他......
  • Codeforces Gym 103119B - Boring Problem(高斯消元)
    考虑建出AC自动机,朴素做法是高斯消元,\(f_i=\sum\limits_{j=0}^{k-1}f_{to_{i,j}}p_j+1\),复杂度\(O(n^3m^3)\),不能接受。考虑优化高斯消元的过程,我们定义以下节点为“关键点”:根节点对于一个trie树(也就是未经过AC自动机getfail操作得到的树)上有超过两个儿子的节点\(x......
  • Codeforces Round 862 (Div. 2) A-D
    CodeforcesRound862(Div.2) A.WeNeedtheZerointa[N];voidsolve(){intn=read(),sum;for(inti=1;i<=n;i++){a[i]=read();if(i==1)sum=a[i];elsesum^=a[i];}if(n%2)cout<<sum<<'\n'......
  • Codeforces Round 874 (Div. 3) A-G
    比赛地址A.MusicalPuzzle题意:给出一个字符串,求有多少个不同的长度为2的子串Solution直接set存即可voidsolve(){ intn;cin>>n; strings;cin>>s; set<string>st; for(inti=0;i<n-1;i++) { st.insert(s.substr(i,2)); } cout<<st.size()<<"\n"......
  • Codeforces Round 874 (Div. 3)
    A.MusicalPuzzle题意:用最少的长度为2的字符串按一定规则拼出s。规则是:前一个字符串的尾与后一个字符串的首相同。分析:统计s中长度为2的不同字符串数量。代码:#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;constintN=1e5;intmain(){......
  • CodeForces1061C Multiplicity
    题面翻译从序列\(\{a_1,\a_2,\..\,\a_n\}\)中选出非空子序列\(\{b_1,\b_2,\..\,\b_k\}\),一个子序列合法需要满足\(\forall\i\in[1,\k],\i\|\b_i\)。求有多少互不相等的合法子序列,答案对\(10^9+7\)取模。序列\(\{1,\1\}\)有\(2\)种选法得到子序列\(......