首页 > 其他分享 >Codeforces Round 884 (Div. 1 + Div. 2)

Codeforces Round 884 (Div. 1 + Div. 2)

时间:2023-07-14 19:45:19浏览次数:51  
标签:typedef const ve 884 int Codeforces long solve Div

Codeforces Round 884 (Div. 1 + Div. 2)

 A - Subtraction Game

思路:显而易见为a+b

#include<bits/stdc++.h>
using namespace std;
#define int long long
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;


void solve(){
    int n;
    int a,b;
    cin>>n;
    while(n--){
        cin>>a>>b;
        cout<<a+b<<'\n';
    }
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

B - Permutations & Primes

思路:中间的被包含的次数最多,因此越往中间放的是非质数,接着放越大的质数

#include<bits/stdc++.h>
using namespace std;
#define int long long
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;

int primes[N],st[N],idx;
void init(){
    st[1]=true;
    for(int i=2;i<=N/i;++i){
        if(!st[i])primes[idx++]=i;
        for(int j=0;primes[j]*i<=N;++j){
            st[primes[j]*i]=true;
            if(i%primes[j]==0)break;
        }
    }
}
void solve(){
    int n;cin>>n;
    vector<int>l,r;
    for(int i=1;i<=n;++i){
        if(st[i]){
            if(l.size()<=r.size())l.push_back(i);
            else r.push_back(i);
        }
    }
    for(int i=n;i>=1&&(l.size()+r.size())<n;--i){
        if(!st[i]){
            if(l.size()<=r.size())l.push_back(i);
            else r.push_back(i);
        }
    }
    for(int i=l.size()-1;i>=0;--i)cout<<l[i]<<' ';
    for(auto v:r)cout<<v<<' ';
    cout<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    init();
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

C - Particles

思路:发现只有不相邻的数才能合并,并且可以通过删去的方法,获取所有不相邻的数中任意的数。那么分别枚举奇和偶位置的数,大于0则取,答案为奇和偶位置情况下的最大值。当然,全为负数时,取一个最大的负数即可

#include<bits/stdc++.h>
using namespace std;
#define int long long
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;


void solve(){
    int n;
    cin>>n;
    vector<int>ve(n+1);
    bool ok1=false,ok2=false;
    for(int i=1;i<=n;++i){
        cin>>ve[i];
        if(i%2&&ve[i]>=0)ok1=true;
        if(i%2==0&&ve[i]>=0)ok2=true;
    }
    int res1=0,res2=0;
    if(!ok1)res1=-INF;
    if(!ok2)res2=-INF;//cout<<res1<<' '<<res2<<'\n';
    for(int i=1;i<=n;++i){
        if(i%2){
            if(ok1){
                if(ve[i]>0)res1+=ve[i];
            }else{
                res1=max(res1,ve[i]);
            }
        }
        else{
            if(ok2){
                if(ve[i]>0)res2+=ve[i];
            }else{
                res2=max(res2,ve[i]);
            }
        }
    }
    int res;//cout<<res1<<' '<<res2<<'\n';
    if(n==1)res=res1;
    else res=max(res1,res2);
    cout<<res<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    //init();
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

D - Row Major

思路:要求所有排列方式中相邻的元素不相同,并且要求元素种类最少。

要求相邻的一行或一列的元素的排列一定是不同的,且排列的行列数为n的约数,那么像abc...abc...abc....这样的重复字符串满足相邻一列都不同;要求相邻行不同的话,那么abc...的个数k一定不为n的约数。要求种类最少的话,就让k为非n的约数的最小值即可满足相邻的一行/一列的元素排列都是不同的。

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

typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=100+5,M=5000000000000+5,INF=0x3f3f3f3f,Mod=1e9+7;
const double eps=1e-6;
typedef long long ll;



void solve(){
    int n;
    cin>>n;
    if(n==1)cout<<"a";
    else if(n==2)cout<<"ab";
    else{
        for(int i=2;i<=n;++i){
            if(n%i){
                int cnt=n,idx=0;
                while(cnt--){
                    cout<<char('a'+(idx++%i));
                }
                break;
            }
        }
    }cout<<'\n';
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int t=1;
    cin>>t;
    while(t--){
        solve();
    }
    return 0;
}
View Code

 

标签:typedef,const,ve,884,int,Codeforces,long,solve,Div
From: https://www.cnblogs.com/bible-/p/17554752.html

相关文章

  • Atcoder Regular Contest 114 F - Permutation Division
    显然分成\(k\)段以后,最大化形成的排列的字典序的策略是将所有段按第一个元素的大小降序排列。由于最终排列的字典序肯定\(\ge\)原排列的字典序,因此我们考虑最大化最终排列与原排列的LCP,这部分就考虑二分答案,记\(dp_i\)表示以\(p_1\)开始\(p_i\)结尾的LDS的长度,那么......
  • 教你快速掌握两个div在同一行显示css如何实现
    我们都知道div是一个块元素,块元素的特点是,独占一行,从上往下排列,但是有时候我们在页面排版的时候需要从左往右横着排列,想要实现这样的效果方法有很多,首先先来看一下,默认情况下的2个div的效果如下代码如下:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF......
  • Codeforces 1396E - Distance Matching
    先考虑一下合法的\(k\)的上界和下界是什么以及如何达到上界和下界,我们找出树的一个重心\(R\)并以\(R\)为根dfs一遍整棵树,那么:下界为\(\sum(siz_i\bmod2)\),构造方法是从下往上钦定,对于一个点考虑其所有没有匹配的儿子,如果是偶数个就将它们两两匹配,如果是奇数个就将它们......
  • Codeforces 1740H - MEX Tree Manipulation
    首先发现一个性质,那就是每个点的点权是\(\logn\)级别的。因为假设要造出一个点权为\(i\)的点至少需要大小为\(mn_i\)的子树,那么显然有\(mn_i=\sum\limits_{j=0}^{i-1}mn_j+1\),即\(mn_i=2^i\)。由于点权不是很大,因此我们很容易地往变换复合的角度思考。将整棵树进行轻重......
  • 2--DIV CSS基础
    1.DIVCSS样式CSS指的是层叠样式表(CascadingStyleSheets),也称级联样式表,是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS描述了如何在屏幕、纸张或其他媒体上显示HTML元素,可以同时控制多张网页的布局。DIV是HTML的一......
  • Codeforces Round #882 (Div. 2) A-D
    比赛链接A代码#include<bits/stdc++.h>usingnamespacestd;usingll=longlong;inta[107];intf[107];boolsolve(){intn,k;cin>>n>>k;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1;i<=n-1;......
  • codeforces1283F
    题目链接sol:根一定是第一个,然后不太会,去看了洛谷题解题解#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<int,int>pii;#definefifirst#definesesecond#definefz1(i,n)for((i)=1;(i)<=(n);(i)++)#definefd1(i,n)for((i)......
  • Educational Codeforces Round 151 (Rated for Div. 2)
    D.RatingSystem题目大意玩家的初始积分为0,该玩家连续进行\(n\)场比赛,每场比赛可升高或降低玩家的积分(\(a_i\))。你可以设置一个\(k\)值,比赛过程中玩家的积分不会低于\(k\)(若有一场比赛会使玩家的积分低于\(k\),比赛后玩家的积分会被强制变为\(k\))。找到一个\(k\),使经过\(n\)......
  • codeforces1311E
    题目链接sol:先建一条链,然后把下面的点一个个往上面移,优先移到最上面,如果上面满了就往下一层,知道刚刚好凑满距离,如果最后不能移了就说明不能凑出给定的距离#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<int,int>pii;#definefifir......
  • Codeforces Round 884 (Div. 1 + Div. 2)
    Preface究极坐牢场,比赛降智导致签到签挂,本来秒出的D写错一个极其傻逼的地方浪费半小时然后后面两个小时坐牢想E和F1,但可惜并没有看出E的性质,被狠狠地薄纱虽然说实话后面有点困了,但应该不至于写不出这个E的,只能说最近的状态真是堪忧啊A.SubtractionGame首先若\(a\ne1\)则......