首页 > 其他分享 >Codeforces Round 972 (Div. 2)

Codeforces Round 972 (Div. 2)

时间:2024-10-24 21:10:39浏览次数:1  
标签:972 int namespace cin Codeforces -- while solve Div

Codeforces Round 972 (Div. 2) 总结

A

#include <bits/stdc++.h>
using namespace std;

int n;
char a[]={'a','e','i','o','u'};

void solve()
{
    cin>>n;
    int x=n/5,y=n%5;
    for(int i=0;i<5;i++)
    {
        for(int j=1;j<=x;j++) cout<<a[i];
        if(y) cout<<a[i],y--;
    }
    cout<<'\n';
}
int main ()
{
    int T;
    cin>>T;
    while(T--) solve();
    return 0;
}

B1

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int n,m,q;
int b[N];

void solve()
{
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++) cin>>b[i];
    sort(b+1,b+m+1);
    while(q--)
    {
        int x;
        cin>>x;
        if(x<b[1]) cout<<b[1]-1<<"\n";
        else if(x<b[2]) cout<<(b[2]-b[1])/2<<"\n";
        else cout<<n-b[2]<<"\n";
    }
}
int main ()
{
    int T;
    cin>>T;
    while(T--) solve();
    return 0;
}

B2

#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5;
int n,m,q;
int b[N];

void solve()
{
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++) cin>>b[i];
    sort(b+1,b+m+1);
    while(q--)
    {
        int t;
        cin>>t;
        int x=lower_bound(b+1,b+m+1,t)-b-1;
        int y=x+1;
        if(x==0) cout<<b[y]-1<<"\n";
        else if(y==m+1) cout<<n-b[x]<<"\n";
        else cout<<(b[y]-b[x])/2<<"\n";
    }
}
int main ()
{
    int T;
    cin>>T;
    while(T--) solve();
    return 0;
}

C

#include <bits/stdc++.h>
using namespace std;

const int N=1005,inf=1e9;
string S="narek";
int n,m;
string s;
int f[N][5];
void solve()
{
    cin>>n>>m;
    for(int i=0;i<=n;i++)
        for(int j=0;j<5;j++) 
            f[i][j]=-1e9;
    f[0][0]=0;
    for(int i=1;i<=n;i++)
    {
        cin>>s;
        for(int j=0;j<5;j++) f[i][j]=f[i-1][j];
        for(int j=0;j<5;j++)
        {
            if(f[i-1][j]==-inf) continue;
            int sum=0,ne=j;
            for(int k=0;k<m;k++)
            {
                int id=S.find(s[k]);
                if(id==-1) continue;
                if(ne==id)
                {
                    ne=(ne+1)%5;
                    sum++;
                }
                else sum--;
            }
            f[i][ne]=max(f[i][ne],f[i-1][j]+sum);
        }
    }
    int ans=0;
    for(int i=0;i<5;i++) ans=max(ans,f[n][i]-2*i);
    cout<<ans<<'\n';
}
int main ()
{
    int T;
    cin>>T;
    while(T--) solve();
    return 0;
}

标签:972,int,namespace,cin,Codeforces,--,while,solve,Div
From: https://www.cnblogs.com/zhouruoheng/p/18500953

相关文章

  • CodeForces - 788C - 完全背包
    题目表示(x1*a[1]+x2*a[2]+...+xk*a[k])/((x1+x2+...+xk)*1000)=n/1000,可以推出(x1*a[1]+x2*a[2]+...+xk*a[k])=n*(x1+x2+...+xk),进而得出(x1*(a[1]-n)+x2*(a[2]-n)+...+xk*(a[k]-n))=0,这样处理之后就和我之前......
  • Codeforces Round 980 (Div. 2)
    CodeforcesRound980(Div.2)总结A简单小学算数题。如果\(b\lea\),直接输出\(a\)。否则,列方程\(a-x=b-2x\),\(x=b-a\),输出\(a-x\),即\(2a-b\)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<c......
  • [算法题解] Codeforces round 979 --D. QED's Favorite Permutation
    题目链接:https://codeforces.com/contest/2030/problem/D题目:题解:FavotitePermutation即每个数满足i=p[i];此题中,p数组每次询问后保持不变,s根据询问而改变。因此每次需要进行交换的数的位置是相同的,只需要检验s变更后,操作能否满足交换需求与否。故创建需数组need,预处理nee......
  • Codeforces Round 966 (Div. 3) A - G
    linkvp赛时过了ABD,CE没做出来,唐完了eee感觉自己真的可以退役了A-PrimaryTaskB-SeatinginaBusC-NumericStringTemplate这题很简单,开两个map扫一遍就可以了,但是赛时我只开了一个,然后居然没调出来qwq,降智D-RightLeftWrong很显然的贪心,最左边配对......
  • HTML布局常用标签——div和span
    HTML布局常用标签——div和span在HTML的世界里,div和span是两位不可或缺的老朋友,它们虽然看似简单,却在网页布局和样式设计中发挥着举足轻重的作用。今天,我们就来聊聊这两位“无意义”却极其实用的标签——div和span。一、div:块级元素的大块头1.定义与特点div,全称“division”,......
  • EPIC Institute of Technology Round Summer 2024 (Div. 1 + Div. 2) E. Wonderful Tr
    题目链接EPICInstituteofTechnologyRoundSummer2024(Div.1+Div.2)E.WonderfulTree!思路题目要求令所有的av≤......
  • Codeforces Round 980 (Div. 2) C题
    sort用法Sort(start,end,cmp)voidsort(RandomAccessIteratorfirst,RandomAccessIteratorlast,Comparecomp);参数[5](1)start表示要排序数组的起始地址;迭代器的起始位置,对于数组来说就是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。(2)end表示数组结束地......
  • Codeforces Round 980 (Div. 2)
    A.ProfitableInterestRate题意:Alice有\(a\)元钱。银行有两种业务:业务A:存钱,但是要求最少要存\(b\)元业务B:花费x元,使得业务A中的要求\(b\)减少\(2*x\)元求Alice最多可以存多少钱分析如果Alice要存钱,要使得\((ans=a-x)\)就要大于业务A的要求\[\left\{\beg......
  • AT_agc064_c [AGC064C] Erase and Divide Game 题解
    先考虑所有\(l_i=r_i\)时怎么做,可以建出反向Trie树,问题转化为从根开始每次向左子树或右子树走,第一个拿到空子树的人输,直接在Trie上dp即可。考虑从叶子层开始对每一层的点合并两个子树的dp值,发现每一层值相同的连续段是较少的。于是可以维护这些连续段,每次合并要将每个......
  • Codeforces 977 E1 Digital Village 贪心证明
    问题重述(原题简化得来):给定一个简单联通无向图,包含n个顶点,每条边有一个正整数边权。定义两顶点距离为两顶点间路径最大边权的最小值。记k个顶点为特殊顶点,记f(i)为i顶点分别到k个顶点的k个距离中的最小距离,记score=f(1)+f(2)+...+f(n)。现在需要最小化score。则以下贪心算法是正确......